ReactOS 0.4.17-dev-573-g8315b8c
oleacc_private.h File Reference
#include "oleacc_classes.h"
#include "servprov.h"
Include dependency graph for oleacc_private.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  win_class_data
 

Functions

const struct win_class_datafind_class_data (HWND, const struct win_class_data *)
 
HRESULT create_client_object (HWND, const IID *, void **)
 
HRESULT create_window_object (HWND, const IID *, void **)
 
HRESULT get_accpropservices_factory (REFIID, void **)
 
int convert_child_id (VARIANT *v)
 

Function Documentation

◆ convert_child_id()

int convert_child_id ( VARIANT v)

Definition at line 48 of file main.c.

49{
50 switch(V_VT(v)) {
51 case VT_I4:
52 return V_I4(v);
53 default:
54 FIXME("unhandled child ID variant type: %d\n", V_VT(v));
55 return -1;
56 }
57}
#define FIXME(fmt,...)
Definition: precomp.h:53
@ VT_I4
Definition: compat.h:2298
const GLdouble * v
Definition: gl.h:2040
#define V_VT(A)
Definition: oleauto.h:211
#define V_I4(A)
Definition: oleauto.h:247

Referenced by Client_accLocation(), Client_get_accDefaultAction(), Client_get_accDescription(), Client_get_accHelp(), Client_get_accKeyboardShortcut(), Client_get_accName(), Client_get_accRole(), Client_get_accValue(), client_get_state(), Client_put_accValue(), edit_get_kbd_shortcut(), edit_get_name(), edit_get_value(), and edit_put_value().

◆ create_client_object()

HRESULT create_client_object ( HWND  hwnd,
const IID iid,
void **  obj 
)

Definition at line 904 of file client.c.

905{
906 const struct win_class_data *data;
907 Client *client;
908 HRESULT hres = S_OK;
909
910 if(!IsWindow(hwnd))
911 return E_FAIL;
912
913 client = heap_alloc_zero(sizeof(Client));
914 if(!client)
915 return E_OUTOFMEMORY;
916
918
919 client->IAccessible_iface.lpVtbl = &ClientVtbl;
920 client->IOleWindow_iface.lpVtbl = &ClientOleWindowVtbl;
921 client->IEnumVARIANT_iface.lpVtbl = &ClientEnumVARIANTVtbl;
922 client->IServiceProvider_iface.lpVtbl = &ClientServiceProviderVtbl;
923 client->ref = 1;
924 client->hwnd = hwnd;
925 client->enum_pos = 0;
926 client->role = ROLE_SYSTEM_CLIENT;
927
928 if(data)
929 client->vtbl = data->vtbl;
930 if(client->vtbl && client->vtbl->init)
931 client->vtbl->init(client);
932
933 hres = IAccessible_QueryInterface(&client->IAccessible_iface, iid, obj);
934 IAccessible_Release(&client->IAccessible_iface);
935 return hres;
936}
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define E_FAIL
Definition: ddrawi.h:102
static const IServiceProviderVtbl ClientServiceProviderVtbl
Definition: client.c:746
static const IAccessibleVtbl ClientVtbl
Definition: client.c:508
static const struct win_class_data classes[]
Definition: client.c:872
static const IOleWindowVtbl ClientOleWindowVtbl
Definition: client.c:579
static const IEnumVARIANTVtbl ClientEnumVARIANTVtbl
Definition: client.c:699
const struct win_class_data * find_class_data(HWND hwnd, const struct win_class_data *classes)
Definition: main.c:59
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
#define S_OK
Definition: intsafe.h:52
HRESULT hres
Definition: protocol.c:465
static FILE * client
Definition: client.c:37
Definition: client.c:31
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
BOOL WINAPI IsWindow(_In_opt_ HWND)

Referenced by CreateStdAccessibleObject().

◆ create_window_object()

HRESULT create_window_object ( HWND  hwnd,
const IID iid,
void **  obj 
)

Definition at line 500 of file window.c.

501{
502 Window *window;
504
505 if(!IsWindow(hwnd))
506 return E_FAIL;
507
508 window = heap_alloc_zero(sizeof(Window));
509 if(!window)
510 return E_OUTOFMEMORY;
511
513
514 window->IAccessible_iface.lpVtbl = &WindowVtbl;
515 window->IOleWindow_iface.lpVtbl = &WindowOleWindowVtbl;
516 window->IEnumVARIANT_iface.lpVtbl = &WindowEnumVARIANTVtbl;
517 window->IServiceProvider_iface.lpVtbl = &WindowServiceProviderVtbl;
518 window->ref = 1;
519 window->hwnd = hwnd;
520
521 hres = IAccessible_QueryInterface(&window->IAccessible_iface, iid, obj);
522 IAccessible_Release(&window->IAccessible_iface);
523 return hres;
524}
static const IOleWindowVtbl WindowOleWindowVtbl
Definition: window.c:380
static const IServiceProviderVtbl WindowServiceProviderVtbl
Definition: window.c:487
static const IAccessibleVtbl WindowVtbl
Definition: window.c:309
static const struct win_class_data classes[]
Definition: window.c:494
static const IEnumVARIANTVtbl WindowEnumVARIANTVtbl
Definition: window.c:440
static IHTMLWindow2 * window
Definition: events.c:77
Definition: window.c:29

Referenced by CreateStdAccessibleObject().

◆ find_class_data()

const struct win_class_data * find_class_data ( HWND  hwnd,
const struct win_class_data classes 
)

Definition at line 59 of file main.c.

60{
61 WCHAR class_name[64];
62 int i, idx;
63
64 if(!RealGetWindowClassW(hwnd, class_name, ARRAY_SIZE(class_name)))
65 return NULL;
66 TRACE("got window class: %s\n", debugstr_w(class_name));
67
68 for(i=0; classes[i].name; i++) {
69 if(!wcsicmp(class_name, classes[i].name)) {
70 if(classes[i].stub)
71 FIXME("unhandled window class: %s\n", debugstr_w(class_name));
72 return &classes[i];
73 }
74 }
75
76 idx = SendMessageW(hwnd, WM_GETOBJECT, 0, OBJID_QUERYCLASSNAMEIDX);
77 if(idx) {
78 for(i=0; classes[i].name; i++) {
79 if(idx == classes[i].idx) {
80 if(classes[i].stub)
81 FIXME("unhandled window class: %s\n", debugstr_w(class_name));
82 return &classes[i];
83 }
84 }
85
86 WARN("unhandled class name idx: %x\n", idx);
87 }
88
89 return NULL;
90}
#define ARRAY_SIZE(A)
Definition: main.h:20
#define WARN(fmt,...)
Definition: precomp.h:61
#define NULL
Definition: types.h:112
unsigned int idx
Definition: utils.c:41
#define wcsicmp
Definition: compat.h:15
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define debugstr_w
Definition: kernel32.h:32
short WCHAR
Definition: pedump.c:58
#define TRACE(s)
Definition: solgame.cpp:4
Definition: stubgen.c:11
Definition: name.c:39
UINT WINAPI RealGetWindowClassW(_In_ HWND hwnd, _Out_writes_to_(cchClassNameMax, return) LPWSTR ptszClassName, _In_ UINT cchClassNameMax)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)

Referenced by create_client_object(), and create_window_object().

◆ get_accpropservices_factory()

HRESULT get_accpropservices_factory ( REFIID  riid,
void **  ppv 
)

Definition at line 247 of file propservice.c.

248{
249 return IClassFactory_QueryInterface(&CAccPropServicesFactory, riid, ppv);
250}
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
static IClassFactory CAccPropServicesFactory
Definition: propservice.c:245

Referenced by DllGetClassObject().