//------------------------------------------------------------------------------ // // This code was generated by a tool. // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ #include "pch.h" #include #include "XamlTypeInfo.g.h" // XamlMetaDataProvider namespace eDosStationApp { namespace eDosStationApp_XamlTypeInfo { [Windows::Foundation::Metadata::WebHostHidden] public ref class XamlMetaDataProvider sealed : public ::Windows::UI::Xaml::Markup::IXamlMetadataProvider { public: [::Windows::Foundation::Metadata::DefaultOverload] virtual ::Windows::UI::Xaml::Markup::IXamlType^ GetXamlType(::Windows::UI::Xaml::Interop::TypeName type); virtual ::Windows::UI::Xaml::Markup::IXamlType^ GetXamlType(::Platform::String^ fullName); virtual ::Platform::Array<::Windows::UI::Xaml::Markup::XmlnsDefinition>^ GetXmlnsDefinitions(); private: ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ _provider; property ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ Provider { ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ get(); } }; } } [::Windows::Foundation::Metadata::DefaultOverload] ::Windows::UI::Xaml::Markup::IXamlType^ ::eDosStationApp::eDosStationApp_XamlTypeInfo::XamlMetaDataProvider::GetXamlType(::Windows::UI::Xaml::Interop::TypeName type) { return Provider->GetXamlTypeByType(type); } ::Windows::UI::Xaml::Markup::IXamlType^ ::eDosStationApp::eDosStationApp_XamlTypeInfo::XamlMetaDataProvider::GetXamlType(Platform::String^ fullName) { return Provider->GetXamlTypeByName(fullName); } Platform::Array<::Windows::UI::Xaml::Markup::XmlnsDefinition>^ ::eDosStationApp::eDosStationApp_XamlTypeInfo::XamlMetaDataProvider::GetXmlnsDefinitions() { return ref new Platform::Array<::Windows::UI::Xaml::Markup::XmlnsDefinition>(0); } ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ ::eDosStationApp::eDosStationApp_XamlTypeInfo::XamlMetaDataProvider::Provider::get() { if (_provider == nullptr) { _provider = ref new XamlTypeInfo::InfoProvider::XamlTypeInfoProvider(); } return _provider; } ::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::GetXamlTypeByType(::Windows::UI::Xaml::Interop::TypeName type) { auto xamlType = GetXamlTypeByName(type.Name); ::XamlTypeInfo::InfoProvider::XamlUserType^ userXamlType = dynamic_cast<::XamlTypeInfo::InfoProvider::XamlUserType^>(xamlType); if (xamlType == nullptr || (userXamlType != nullptr && userXamlType->IsReturnTypeStub && !userXamlType->IsLocalType)) { ::Windows::UI::Xaml::Markup::IXamlType^ libXamlType = CheckOtherMetadataProvidersForType(type); if (libXamlType != nullptr) { if(libXamlType->IsConstructible || xamlType == nullptr) { xamlType = libXamlType; } } } return xamlType; } ::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::GetXamlTypeByName(::Platform::String^ typeName) { if (typeName == nullptr || typeName->IsEmpty()) { return nullptr; } auto lock = _xamlTypesCriticalSection.Lock(); auto val = _xamlTypes.find(typeName); ::Windows::UI::Xaml::Markup::IXamlType^ xamlType = nullptr; if (val != _xamlTypes.end()) { xamlType = (val->second).Resolve<::Windows::UI::Xaml::Markup::IXamlType>(); if(xamlType != nullptr) { return xamlType; } } xamlType = CreateXamlType(typeName); ::XamlTypeInfo::InfoProvider::XamlUserType^ userXamlType = dynamic_cast<::XamlTypeInfo::InfoProvider::XamlUserType^>(xamlType); if (xamlType == nullptr || (userXamlType != nullptr && userXamlType->IsReturnTypeStub && !userXamlType->IsLocalType)) { ::Windows::UI::Xaml::Markup::IXamlType^ libXamlType = CheckOtherMetadataProvidersForName(typeName); if (libXamlType != nullptr) { if(libXamlType->IsConstructible || xamlType == nullptr) { xamlType = libXamlType; } } } if (xamlType != nullptr) { Platform::WeakReference wr(xamlType); _xamlTypes[xamlType->FullName] = wr; } return xamlType; } ::Windows::UI::Xaml::Markup::IXamlMember^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::GetMemberByLongName(::Platform::String^ longMemberName) { if (longMemberName == nullptr || longMemberName->IsEmpty()) { return nullptr; } auto lock = _xamlMembersCriticalSection.Lock(); auto val = _xamlMembers.find(longMemberName); if (val != _xamlMembers.end()) { return val->second; } auto xamlMember = CreateXamlMember(longMemberName); if (xamlMember != nullptr) { _xamlMembers[longMemberName] = xamlMember; } return xamlMember; } ::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::CheckOtherMetadataProvidersForName(::Platform::String^ typeName) { ::Windows::UI::Xaml::Markup::IXamlType^ foundXamlType = nullptr; for (unsigned int i = 0; i < OtherProviders->Size; i++) { auto xamlType = OtherProviders->GetAt(i)->GetXamlType(typeName); if(xamlType != nullptr) { if(xamlType->IsConstructible) // not Constructible means it might be a Return Type Stub { return xamlType; } foundXamlType = xamlType; } } return foundXamlType; } ::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::CheckOtherMetadataProvidersForType(::Windows::UI::Xaml::Interop::TypeName t) { ::Windows::UI::Xaml::Markup::IXamlType^ foundXamlType = nullptr; for (unsigned int i = 0; i < OtherProviders->Size; i++) { auto xamlType = OtherProviders->GetAt(i)->GetXamlType(t); if(xamlType != nullptr) { if(xamlType->IsConstructible) // not Constructible means it might be a Return Type Stub { return xamlType; } foundXamlType = xamlType; } } return foundXamlType; } // XamlSystemBaseType ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::XamlSystemBaseType(::Platform::String^ name) : _fullName(name) { } ::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::BaseType::get() { throw ref new ::Platform::NotImplementedException; } ::Windows::UI::Xaml::Markup::IXamlMember^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::ContentProperty::get() { throw ref new ::Platform::NotImplementedException; } ::Platform::String^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::FullName::get() { return _fullName; } ::Platform::String^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::Name::get() { const wchar_t* seperator = wcsrchr(_fullName->Data(), '.'); if (seperator == nullptr) { return _fullName; } return ref new ::Platform::String(seperator); } bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsArray::get() { throw ref new ::Platform::NotImplementedException; } bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsCollection::get() { throw ref new ::Platform::NotImplementedException; } bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsConstructible::get() { throw ref new ::Platform::NotImplementedException; } bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsDictionary::get() { throw ref new ::Platform::NotImplementedException; } bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsMarkupExtension::get() { throw ref new ::Platform::NotImplementedException; } bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsEnum::get() { throw ref new ::Platform::NotImplementedException; } bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsSystemType::get() { throw ref new ::Platform::NotImplementedException; } bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsBindable::get() { throw ref new ::Platform::NotImplementedException; } ::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::ItemType::get() { throw ref new ::Platform::NotImplementedException; } ::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::KeyType::get() { throw ref new ::Platform::NotImplementedException; } ::Windows::UI::Xaml::Interop::TypeName (::XamlTypeInfo::InfoProvider::XamlSystemBaseType::UnderlyingType::get)() { ::Windows::UI::Xaml::Interop::TypeName typeName; typeName.Name = _fullName; typeName.Kind = ::Windows::UI::Xaml::Interop::TypeKind::Primitive; return typeName; } ::Platform::Object^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::ActivateInstance() { throw ref new ::Platform::NotImplementedException; } ::Windows::UI::Xaml::Markup::IXamlMember^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::GetMember(::Platform::String^) { throw ref new ::Platform::NotImplementedException; } void ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::AddToVector(::Platform::Object^, ::Platform::Object^) { throw ref new ::Platform::NotImplementedException; } void ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::AddToMap(::Platform::Object^, ::Platform::Object^, ::Platform::Object^) { throw ref new ::Platform::NotImplementedException; } void ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::RunInitializer() { throw ref new ::Platform::NotImplementedException; } ::Platform::Object^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::CreateFromString(::Platform::String^) { throw ref new ::Platform::NotImplementedException; } //XamlUserType ::XamlTypeInfo::InfoProvider::XamlUserType::XamlUserType(::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ provider, ::Platform::String^ fullName, ::Windows::UI::Xaml::Markup::IXamlType^ baseType) : _isArray(false), _isMarkupExtension(false), _isEnum(false), _isBindable(false), _isReturnTypeStub(false), _isLocalType(false), _fullName(fullName), _provider(provider), _baseType(baseType) { } ::Platform::String^ ::XamlTypeInfo::InfoProvider::XamlUserType::FullName::get() { return _fullName; } ::Platform::String^ ::XamlTypeInfo::InfoProvider::XamlUserType::Name::get() { const wchar_t *seperator = wcsrchr(_fullName->Data(), '.'); if (seperator == nullptr) { return _fullName; } return ref new ::Platform::String(seperator); } ::Windows::UI::Xaml::Interop::TypeName (::XamlTypeInfo::InfoProvider::XamlUserType::UnderlyingType::get)() { ::Windows::UI::Xaml::Interop::TypeName typeName; typeName.Name = _fullName; typeName.Kind = KindOfType; return typeName; } bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsSystemType::get() { return true; } ::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlUserType::BaseType::get() { return _baseType; } bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsArray::get() { return _isArray; } void ::XamlTypeInfo::InfoProvider::XamlUserType::IsArray::set(bool value) { _isArray = value; } bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsCollection::get() { return CollectionAdd != nullptr; } bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsConstructible::get() { return Activator != nullptr; } bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsDictionary::get() { return DictionaryAdd != nullptr; } bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsMarkupExtension::get() { return _isMarkupExtension; } void ::XamlTypeInfo::InfoProvider::XamlUserType::IsMarkupExtension::set(bool value) { _isMarkupExtension = value; } bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsEnum::get() { return _isEnum; } void ::XamlTypeInfo::InfoProvider::XamlUserType::IsEnum::set(bool value) { _isEnum = value; } bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsBindable::get() { return _isBindable; } void ::XamlTypeInfo::InfoProvider::XamlUserType::IsBindable::set(bool value) { _isBindable = value; } bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsReturnTypeStub::get() { return _isReturnTypeStub; } void ::XamlTypeInfo::InfoProvider::XamlUserType::IsReturnTypeStub::set(bool value) { _isReturnTypeStub = value; } bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsLocalType::get() { return _isLocalType; } void ::XamlTypeInfo::InfoProvider::XamlUserType::IsLocalType::set(bool value) { _isLocalType = value; } ::Windows::UI::Xaml::Markup::IXamlMember^ ::XamlTypeInfo::InfoProvider::XamlUserType::ContentProperty::get() { return _provider->GetMemberByLongName(_contentPropertyName); } void ::XamlTypeInfo::InfoProvider::XamlUserType::ContentPropertyName::set(::Platform::String^ value) { _contentPropertyName = value; } ::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlUserType::ItemType::get() { return _provider->GetXamlTypeByName(_itemTypeName); } void ::XamlTypeInfo::InfoProvider::XamlUserType::ItemTypeName::set(::Platform::String^ value) { _itemTypeName = value; } ::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlUserType::KeyType::get() { return _provider->GetXamlTypeByName(_keyTypeName); } void ::XamlTypeInfo::InfoProvider::XamlUserType::KeyTypeName::set(::Platform::String^ value) { _keyTypeName = value; } ::Windows::UI::Xaml::Markup::IXamlMember^ ::XamlTypeInfo::InfoProvider::XamlUserType::GetMember(::Platform::String^ name) { auto val = _memberNames.find(name); if (val != _memberNames.end()) { return _provider->GetMemberByLongName(val->second); } return nullptr; } ::Platform::Object^ ::XamlTypeInfo::InfoProvider::XamlUserType::ActivateInstance() { return Activator(); } void ::XamlTypeInfo::InfoProvider::XamlUserType::AddToMap(::Platform::Object^ instance, ::Platform::Object^ key, ::Platform::Object^ item) { DictionaryAdd(instance, key, item); } void ::XamlTypeInfo::InfoProvider::XamlUserType::AddToVector(::Platform::Object^ instance, ::Platform::Object^ item) { CollectionAdd(instance, item); } void ::XamlTypeInfo::InfoProvider::XamlUserType::RunInitializer() { // The C++ runtime will have already run all the Static Initializers at start up. } ::Platform::Object^ ::XamlTypeInfo::InfoProvider::XamlUserType::CreateFromString(::Platform::String^ input) { if (CreateFromStringMethod != nullptr) { return (*CreateFromStringMethod)(input); } else { return FromStringConverter(this, input); } } void ::XamlTypeInfo::InfoProvider::XamlUserType::AddMemberName(::Platform::String^ shortName) { _memberNames[shortName] = FullName + "." + shortName; } void ::XamlTypeInfo::InfoProvider::XamlUserType::AddEnumValue(::Platform::String^ name, ::Platform::Object^ value) { _enumValues[name->Data()] = value; } ::default::uint32 (::XamlTypeInfo::InfoProvider::XamlUserType::CreateEnumUIntFromString)(::Platform::String^ input) { bool found = false; const std::wregex regularExpression(L"^\\s+|\\s*,\\s*|\\s+$"); uint32 val = 0; for (std::wcregex_token_iterator it(input->Begin(), input->End(), regularExpression, -1), end; it != end; ++it) { const std::wcsub_match& subMatch = *it; if (subMatch.length() == 0 ) { continue; } std::wstring lookup(subMatch.first, (unsigned int)subMatch.length()); try { auto entry = _enumValues.find(lookup); if (entry != _enumValues.end()) { const auto f = entry->second; val |= safe_cast(f); } else { val |= std::stoi(subMatch); } found=true; } catch (const std::invalid_argument& ) { found = false; break; } } if(found) { return val; } throw ref new ::Platform::InvalidArgumentException(); } // XamlMember ::XamlTypeInfo::InfoProvider::XamlMember::XamlMember(::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ provider, ::Platform::String^ name, ::Platform::String^ typeName) : _isAttachable(false), _isDependencyProperty(false), _isReadOnly(false), _name(name), _typeName(typeName), _provider(provider) { } bool ::XamlTypeInfo::InfoProvider::XamlMember::IsAttachable::get() { return _isAttachable; } void ::XamlTypeInfo::InfoProvider::XamlMember::IsAttachable::set(bool value) { _isAttachable = value; } bool ::XamlTypeInfo::InfoProvider::XamlMember::IsDependencyProperty::get() { return _isDependencyProperty; } void ::XamlTypeInfo::InfoProvider::XamlMember::IsDependencyProperty::set(bool value) { _isDependencyProperty = value; } bool ::XamlTypeInfo::InfoProvider::XamlMember::IsReadOnly::get() { return _isReadOnly; } void ::XamlTypeInfo::InfoProvider::XamlMember::IsReadOnly::set(bool value) { _isReadOnly = value; } ::Platform::String^ ::XamlTypeInfo::InfoProvider::XamlMember::Name::get() { return _name; } ::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlMember::Type::get() { return _provider->GetXamlTypeByName(_typeName); } ::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlMember::TargetType::get() { return _provider->GetXamlTypeByName(_targetTypeName); } void ::XamlTypeInfo::InfoProvider::XamlMember::TargetTypeName::set(::Platform::String^ value) { _targetTypeName = value; } ::Platform::Object^ ::XamlTypeInfo::InfoProvider::XamlMember::GetValue(::Platform::Object^ instance) { if (Getter != nullptr) { return Getter(instance); } throw ref new ::Platform::NullReferenceException(); } void ::XamlTypeInfo::InfoProvider::XamlMember::SetValue(::Platform::Object^ instance, ::Platform::Object^ value) { if (Setter != nullptr) { Setter(instance, value); return; } throw ref new ::Platform::NullReferenceException(); }