ReactOS 0.4.16-dev-2491-g3dc6630
uia_ids.c File Reference
#include "uia_private.h"
#include "ocidl.h"
#include "wine/debug.h"
Include dependency graph for uia_ids.c:

Go to the source code of this file.

Macros

#define PROP_ID_MIN   30000
 
#define PROP_ID_MAX   (PROP_ID_MIN + ARRAY_SIZE(default_uia_properties))
 
#define EVENT_ID_MIN   20000
 
#define EVENT_ID_MAX   (EVENT_ID_MIN + ARRAY_SIZE(default_uia_events))
 
#define PATTERN_ID_MIN   10000
 
#define PATTERN_ID_MAX   (PATTERN_ID_MIN + ARRAY_SIZE(default_uia_patterns))
 
#define CONTROL_TYPE_ID_MIN   50000
 
#define CONTROL_TYPE_ID_MAX   (CONTROL_TYPE_ID_MIN + ARRAY_SIZE(default_uia_control_types))
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (uiautomation)
 
static int __cdecl uia_property_guid_compare (const void *a, const void *b)
 
static int __cdecl uia_event_guid_compare (const void *a, const void *b)
 
static int __cdecl uia_pattern_guid_compare (const void *a, const void *b)
 
static int __cdecl uia_control_type_guid_compare (const void *a, const void *b)
 
static const struct uia_prop_infouia_prop_info_from_guid (const GUID *guid)
 
const struct uia_prop_infouia_prop_info_from_id (PROPERTYID prop_id)
 
static const struct uia_event_infouia_event_info_from_guid (const GUID *guid)
 
const struct uia_event_infouia_event_info_from_id (EVENTID event_id)
 
static const struct uia_pattern_infouia_pattern_info_from_guid (const GUID *guid)
 
const struct uia_pattern_infouia_pattern_info_from_id (PATTERNID pattern_id)
 
static const struct uia_control_type_infouia_control_type_info_from_guid (const GUID *guid)
 
const struct uia_control_type_infouia_control_type_info_from_id (CONTROLTYPEID control_type_id)
 
int WINAPI UiaLookupId (enum AutomationIdentifierType type, const GUID *guid)
 

Variables

static const struct uia_prop_info default_uia_properties []
 
static const int prop_id_idx []
 
static const struct uia_event_info default_uia_events []
 
static const int event_id_idx []
 
static const struct uia_pattern_info default_uia_patterns []
 
static const int pattern_id_idx []
 
static const struct uia_control_type_info default_uia_control_types []
 
static const int control_type_id_idx []
 

Macro Definition Documentation

◆ CONTROL_TYPE_ID_MAX

Definition at line 603 of file uia_ids.c.

◆ CONTROL_TYPE_ID_MIN

#define CONTROL_TYPE_ID_MIN   50000

Definition at line 602 of file uia_ids.c.

◆ EVENT_ID_MAX

Definition at line 425 of file uia_ids.c.

◆ EVENT_ID_MIN

#define EVENT_ID_MIN   20000

Definition at line 424 of file uia_ids.c.

◆ PATTERN_ID_MAX

Definition at line 527 of file uia_ids.c.

◆ PATTERN_ID_MIN

#define PATTERN_ID_MIN   10000

Definition at line 526 of file uia_ids.c.

◆ PROP_ID_MAX

Definition at line 319 of file uia_ids.c.

◆ PROP_ID_MIN

#define PROP_ID_MIN   30000

Definition at line 318 of file uia_ids.c.

Function Documentation

◆ uia_control_type_guid_compare()

static int __cdecl uia_control_type_guid_compare ( const void a,
const void b 
)
static

Definition at line 47 of file uia_ids.c.

48{
49 const GUID *guid = a;
50 const struct uia_control_type_info *control = b;
51 return memcmp(guid, control->guid, sizeof(*guid));
52}
GUID guid
Definition: version.c:147
_ACRTIMP int __cdecl memcmp(const void *, const void *, size_t)
Definition: string.c:2802
#define a
Definition: ke_i.h:78
#define b
Definition: ke_i.h:79
Definition: dialog.c:52

Referenced by uia_control_type_info_from_guid().

◆ uia_control_type_info_from_guid()

static const struct uia_control_type_info * uia_control_type_info_from_guid ( const GUID guid)
static

Definition at line 605 of file uia_ids.c.

606{
608
611 return control_type;
612
613 return NULL;
614}
#define ARRAY_SIZE(A)
Definition: main.h:20
#define NULL
Definition: types.h:112
static const char * control_type(DWORD dwControlType)
Definition: mixer.c:110
#define bsearch
static const struct uia_control_type_info default_uia_control_types[]
Definition: uia_ids.c:549
static int __cdecl uia_control_type_guid_compare(const void *a, const void *b)
Definition: uia_ids.c:47

Referenced by UiaLookupId().

◆ uia_control_type_info_from_id()

const struct uia_control_type_info * uia_control_type_info_from_id ( CONTROLTYPEID  control_type_id)

Definition at line 616 of file uia_ids.c.

617{
618 if ((control_type_id < CONTROL_TYPE_ID_MIN) || (control_type_id >= CONTROL_TYPE_ID_MAX))
619 return NULL;
620
622}
#define CONTROL_TYPE_ID_MAX
Definition: uia_ids.c:603
#define CONTROL_TYPE_ID_MIN
Definition: uia_ids.c:602
static const int control_type_id_idx[]
Definition: uia_ids.c:593

Referenced by uia_elem_get_control_type().

◆ uia_event_guid_compare()

static int __cdecl uia_event_guid_compare ( const void a,
const void b 
)
static

Definition at line 33 of file uia_ids.c.

34{
35 const GUID *guid = a;
36 const struct uia_event_info *event = b;
37 return memcmp(guid, event->guid, sizeof(*guid));
38}
struct _cl_event * event
Definition: glext.h:7739

Referenced by uia_event_info_from_guid().

◆ uia_event_info_from_guid()

static const struct uia_event_info * uia_event_info_from_guid ( const GUID guid)
static

Definition at line 427 of file uia_ids.c.

428{
429 struct uia_event_info *event;
430
433 return event;
434
435 return NULL;
436}
static const struct uia_event_info default_uia_events[]
Definition: uia_ids.c:341
static int __cdecl uia_event_guid_compare(const void *a, const void *b)
Definition: uia_ids.c:33

Referenced by UiaLookupId().

◆ uia_event_info_from_id()

const struct uia_event_info * uia_event_info_from_id ( EVENTID  event_id)

Definition at line 438 of file uia_ids.c.

439{
440 if ((event_id < EVENT_ID_MIN) || (event_id >= EVENT_ID_MAX))
441 return NULL;
442
443 return &default_uia_events[event_id_idx[event_id - EVENT_ID_MIN]];
444}
static const int event_id_idx[]
Definition: uia_ids.c:416
#define EVENT_ID_MIN
Definition: uia_ids.c:424
#define EVENT_ID_MAX
Definition: uia_ids.c:425

Referenced by uia_event_raise_event(), uia_proxy_win_event_sink_AddAutomationEvent(), uia_serverside_event_adviser_advise(), UiaAddEvent(), and UiaRaiseAutomationEvent().

◆ uia_pattern_guid_compare()

static int __cdecl uia_pattern_guid_compare ( const void a,
const void b 
)
static

Definition at line 40 of file uia_ids.c.

41{
42 const GUID *guid = a;
43 const struct uia_pattern_info *pattern = b;
44 return memcmp(guid, pattern->guid, sizeof(*guid));
45}
GLubyte * pattern
Definition: glext.h:7787

Referenced by uia_pattern_info_from_guid().

◆ uia_pattern_info_from_guid()

static const struct uia_pattern_info * uia_pattern_info_from_guid ( const GUID guid)
static

Definition at line 529 of file uia_ids.c.

530{
532
535 return pattern;
536
537 return NULL;
538}
static const struct uia_pattern_info default_uia_patterns[]
Definition: uia_ids.c:447
static int __cdecl uia_pattern_guid_compare(const void *a, const void *b)
Definition: uia_ids.c:40

Referenced by UiaLookupId().

◆ uia_pattern_info_from_id()

const struct uia_pattern_info * uia_pattern_info_from_id ( PATTERNID  pattern_id)

Definition at line 540 of file uia_ids.c.

541{
542 if ((pattern_id < PATTERN_ID_MIN) || (pattern_id >= PATTERN_ID_MAX))
543 return NULL;
544
546}
#define PATTERN_ID_MAX
Definition: uia_ids.c:527
#define PATTERN_ID_MIN
Definition: uia_ids.c:526
static const int pattern_id_idx[]
Definition: uia_ids.c:518

Referenced by uia_provider_get_pattern_prop_val().

◆ uia_prop_info_from_guid()

static const struct uia_prop_info * uia_prop_info_from_guid ( const GUID guid)
static

Definition at line 321 of file uia_ids.c.

322{
323 struct uia_prop_info *prop;
324
327 return prop;
328
329 return NULL;
330}
static const struct uia_prop_info default_uia_properties[]
Definition: uia_ids.c:55
static int __cdecl uia_property_guid_compare(const void *a, const void *b)
Definition: uia_ids.c:26

Referenced by UiaLookupId().

◆ uia_prop_info_from_id()

◆ uia_property_guid_compare()

static int __cdecl uia_property_guid_compare ( const void a,
const void b 
)
static

Definition at line 26 of file uia_ids.c.

27{
28 const GUID *guid = a;
29 const struct uia_prop_info *property = b;
30 return memcmp(guid, property->guid, sizeof(*guid));
31}

Referenced by uia_prop_info_from_guid().

◆ UiaLookupId()

int WINAPI UiaLookupId ( enum AutomationIdentifierType  type,
const GUID guid 
)

Definition at line 627 of file uia_ids.c.

628{
629 int ret_id = 0;
630
631 TRACE("(%d, %s)\n", type, debugstr_guid(guid));
632
633 switch (type)
634 {
636 {
637 const struct uia_prop_info *prop = uia_prop_info_from_guid(guid);
638
639 if (prop)
640 ret_id = prop->prop_id;
641 else
642 FIXME("Failed to find propertyId for GUID %s\n", debugstr_guid(guid));
643
644 break;
645 }
646
648 {
649 const struct uia_event_info *event = uia_event_info_from_guid(guid);
650
651 if (event)
652 ret_id = event->event_id;
653 else
654 FIXME("Failed to find eventId for GUID %s\n", debugstr_guid(guid));
655
656 break;
657 }
658
660 {
662
663 if (pattern)
664 ret_id = pattern->pattern_id;
665 else
666 FIXME("Failed to find patternId for GUID %s\n", debugstr_guid(guid));
667
668 break;
669 }
670
672 {
674
675 if (control_type)
676 ret_id = control_type->control_type_id;
677 else
678 FIXME("Failed to find control type Id for GUID %s\n", debugstr_guid(guid));
679
680 break;
681 }
682
688 FIXME("Unimplemented AutomationIdentifierType %d\n", type);
689 break;
690
691 default:
692 FIXME("Invalid AutomationIdentifierType %d\n", type);
693 break;
694 }
695
696 return ret_id;
697}
#define FIXME(fmt,...)
Definition: precomp.h:53
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
#define debugstr_guid
Definition: kernel32.h:35
#define TRACE(s)
Definition: solgame.cpp:4
static const struct uia_control_type_info * uia_control_type_info_from_guid(const GUID *guid)
Definition: uia_ids.c:605
static const struct uia_pattern_info * uia_pattern_info_from_guid(const GUID *guid)
Definition: uia_ids.c:529
static const struct uia_event_info * uia_event_info_from_guid(const GUID *guid)
Definition: uia_ids.c:427
static const struct uia_prop_info * uia_prop_info_from_guid(const GUID *guid)
Definition: uia_ids.c:321
@ AutomationIdentifierType_Changes
@ AutomationIdentifierType_Annotation
@ AutomationIdentifierType_Pattern
@ AutomationIdentifierType_LandmarkType
@ AutomationIdentifierType_Event
@ AutomationIdentifierType_TextAttribute
@ AutomationIdentifierType_Style
@ AutomationIdentifierType_Property
@ AutomationIdentifierType_ControlType

Referenced by test_CUIAutomation_event_handlers(), test_Element_cache_methods(), test_Element_GetPropertyValue(), test_uia_com_focus_change_event_handler_win_event_handling(), test_uia_event_ProxyProviderWinEventHandler(), test_UiaGetPropertyValue(), test_UiaGetUpdatedCache(), test_UiaLookupId(), uia_event_set_event_data(), and uia_node_get_prop_val().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( uiautomation  )

Variable Documentation

◆ control_type_id_idx

const int control_type_id_idx[]
static
Initial value:
= {
0x12, 0x17, 0x04, 0x13, 0x1f, 0x05, 0x27, 0x28,
0x26, 0x09, 0x0f, 0x23, 0x16, 0x24, 0x07, 0x0d,
0x08, 0x01, 0x06, 0x0e, 0x25, 0x10, 0x22, 0x19,
0x1c, 0x1e, 0x02, 0x15, 0x1b, 0x0b, 0x14, 0x03,
0x0a, 0x11, 0x21, 0x20, 0x00, 0x1d, 0x1a, 0x0c,
0x18,
}

Definition at line 593 of file uia_ids.c.

Referenced by uia_control_type_info_from_id().

◆ default_uia_control_types

const struct uia_control_type_info default_uia_control_types[]
static

Definition at line 549 of file uia_ids.c.

Referenced by uia_control_type_info_from_guid(), and uia_control_type_info_from_id().

◆ default_uia_events

const struct uia_event_info default_uia_events[]
static

Definition at line 341 of file uia_ids.c.

Referenced by uia_event_info_from_guid(), and uia_event_info_from_id().

◆ default_uia_patterns

const struct uia_pattern_info default_uia_patterns[]
static

Definition at line 447 of file uia_ids.c.

Referenced by uia_pattern_info_from_guid(), and uia_pattern_info_from_id().

◆ default_uia_properties

const struct uia_prop_info default_uia_properties[]
static

Definition at line 55 of file uia_ids.c.

Referenced by uia_prop_info_from_guid(), and uia_prop_info_from_id().

◆ event_id_idx

const int event_id_idx[]
static
Initial value:
= {
0x23, 0x1d, 0x0d, 0x0b, 0x19, 0x06, 0x07, 0x0f,
0x0a, 0x1e, 0x1b, 0x1a, 0x22, 0x00, 0x18, 0x10,
0x01, 0x20, 0x08, 0x17, 0x15, 0x13, 0x0e, 0x0c,
0x14, 0x09, 0x03, 0x21, 0x12, 0x16, 0x05, 0x1c,
0x02, 0x11, 0x04, 0x1f,
}

Definition at line 416 of file uia_ids.c.

Referenced by uia_event_info_from_id().

◆ pattern_id_idx

const int pattern_id_idx[]
static
Initial value:
= {
0x1f, 0x1d, 0x10, 0x0c, 0x15, 0x13, 0x19, 0x0b,
0x1c, 0x04, 0x1e, 0x06, 0x0f, 0x17, 0x09, 0x0a,
0x1b, 0x00, 0x11, 0x02, 0x05, 0x14, 0x20, 0x1a,
0x12, 0x07, 0x18, 0x21, 0x01, 0x16, 0x03, 0x08,
0x0d, 0x0e,
}

Definition at line 518 of file uia_ids.c.

Referenced by uia_pattern_info_from_id().

◆ prop_id_idx

const int prop_id_idx[]
static
Initial value:
= {
0xaa, 0x8b, 0x76, 0xa3, 0x3d, 0x0e, 0x9f, 0x08,
0x2e, 0x1e, 0x65, 0x00, 0x0a, 0x69, 0x2f, 0x1b,
0x68, 0x86, 0x3a, 0x88, 0x30, 0x3b, 0x52, 0x54,
0x01, 0x98, 0x14, 0x93, 0x04, 0x17, 0x58, 0x2d,
0xa4, 0x37, 0x38, 0x03, 0x24, 0x8f, 0x4f, 0x06,
0x7a, 0x45, 0x02, 0x84, 0x89, 0x55, 0x28, 0x75,
0x48, 0x8a, 0x09, 0x19, 0x4a, 0x07, 0x9e, 0x77,
0x15, 0x34, 0x74, 0x7f, 0x82, 0x16, 0x90, 0x5c,
0x1f, 0x4c, 0x0f, 0xa8, 0x42, 0x26, 0x35, 0x61,
0xac, 0x33, 0x18, 0x51, 0x81, 0x71, 0x9c, 0x50,
0x59, 0x6a, 0x21, 0x92, 0x7d, 0x80, 0x44, 0x3c,
0x83, 0x36, 0x96, 0x4d, 0x32, 0x8c, 0x0c, 0x7b,
0x46, 0x43, 0x87, 0xa1, 0x1c, 0x73, 0x6d, 0x67,
0x6b, 0x8e, 0x13, 0x6c, 0x85, 0x41, 0x94, 0x40,
0x78, 0x3e, 0x72, 0x53, 0x4e, 0x23, 0x2b, 0x11,
0x27, 0x2a, 0x62, 0x12, 0xa9, 0xad, 0x7e, 0x9b,
0x29, 0x64, 0x2c, 0x99, 0x20, 0x70, 0x39, 0x6e,
0xa0, 0x8d, 0xa7, 0x60, 0x49, 0x25, 0x5b, 0xa5,
0x22, 0x0d, 0x0b, 0x5f, 0x3f, 0x4b, 0x5e, 0x9d,
0x47, 0x31, 0x1d, 0x5d, 0x97, 0xa6, 0x66, 0xae,
0x9a, 0x91, 0xa2, 0x56, 0x95, 0x05, 0x63, 0x10,
0xab, 0x57, 0x6f, 0x1a, 0x7c, 0x5a, 0x79,
}

Definition at line 293 of file uia_ids.c.

Referenced by uia_prop_info_from_id().