static private Register ( UiaCoreIds type, System.Guid guid, string programmaticName ) : |
||
type | UiaCoreIds | |
guid | System.Guid | |
programmaticName | string | |
리턴 |
internal static AutomationIdentifier Register(UiaCoreIds.AutomationIdType type, Guid guid, string programmaticName)
{
int id = UiaCoreIds.UiaLookupId(type, ref guid);
if (id == 0)
{
return null;
}
lock (_identifierDirectory)
{
AutomationIdentifier identifier = (AutomationIdentifier)_identifierDirectory[guid];
if (identifier == null)
{
switch (type)
{
case UiaCoreIds.AutomationIdType.Property:
identifier = new AutomationProperty(id, guid, programmaticName);
break;
case UiaCoreIds.AutomationIdType.Pattern:
identifier = new AutomationPattern(id, guid, programmaticName);
break;
case UiaCoreIds.AutomationIdType.Event:
identifier = new AutomationEvent(id, guid, programmaticName);
break;
case UiaCoreIds.AutomationIdType.ControlType:
identifier = new ControlType(id, guid, programmaticName);
break;
case UiaCoreIds.AutomationIdType.TextAttribute:
identifier = new AutomationTextAttribute(id, guid, programmaticName);
break;
default:
throw new InvalidOperationException("Invalid type specified for AutomationIdentifier");
}
_identifierDirectory[id] = identifier;
}
return identifier;
}
}
internal static ControlType Register(Guid guid, string programmaticName, STID stId, AutomationProperty[] requiredProperties, AutomationPattern[] neverSupportedPatterns, AutomationPattern[][] requiredPatternsSets) { ControlType controlType = (ControlType)AutomationIdentifier.Register(UiaCoreTypesApi.AutomationIdType.ControlType, guid, programmaticName); controlType._stId = stId; controlType._requiredPatternsSets = requiredPatternsSets; controlType._neverSupportedPatterns = neverSupportedPatterns; controlType._requiredProperties = requiredProperties; return(controlType); }