//------------------------------------------------------------------------------ // // 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 "XamlTypeInfo.g.h" #include "App.xaml.h" #include "DirectXPage.xaml.h" #include "XamlBindingInfo.g.hpp" #include "App.g.hpp" #include "DirectXPage.g.hpp" template ::Platform::Object^ ActivateType() { return ref new T; } template void CollectionAdd(::Platform::Object^ instance, ::Platform::Object^ item) { safe_cast(instance)->Append((TItem)item); } template void DictionaryAdd(::Platform::Object^ instance, ::Platform::Object^ key, ::Platform::Object^ item) { safe_cast(instance)->Insert((TKey)key, (TItem)item); } template ::Platform::Object^ FromStringConverter(::XamlTypeInfo::InfoProvider::XamlUserType^ userType, ::Platform::String^ input) { return ref new ::Platform::Box((T)userType->CreateEnumUIntFromString(input)); } enum TypeInfo_Flags { TypeInfo_Flags_None = 0x00, TypeInfo_Flags_IsLocalType = 0x01, TypeInfo_Flags_IsSystemType = 0x02, TypeInfo_Flags_IsReturnTypeStub = 0x04, TypeInfo_Flags_IsBindable = 0x08, TypeInfo_Flags_IsMarkupExtension = 0x10, }; struct TypeInfo { PCWSTR typeName; PCWSTR contentPropertyName; ::Platform::Object^ (*activator)(); void (*collectionAdd)(::Platform::Object^, ::Platform::Object^); void (*dictionaryAdd)(::Platform::Object^, ::Platform::Object^, ::Platform::Object^); ::Platform::Object^ (*fromStringConverter)(::XamlTypeInfo::InfoProvider::XamlUserType^, ::Platform::String^); int baseTypeIndex; int firstMemberIndex; int firstEnumValueIndex; int createFromStringIndex; ::Windows::UI::Xaml::Interop::TypeKind kindofType; unsigned int flags; }; const TypeInfo TypeInfos[] = { // 0 L"eDosStationApp.DirectXPage", L"", &ActivateType<::eDosStationApp::DirectXPage>, nullptr, nullptr, nullptr, 1, // Windows.UI.Xaml.Controls.Page 0, 0, -1, ::Windows::UI::Xaml::Interop::TypeKind::Custom, TypeInfo_Flags_IsLocalType | TypeInfo_Flags_None, // 1 L"Windows.UI.Xaml.Controls.Page", L"", nullptr, nullptr, nullptr, nullptr, -1, 0, 0, -1, ::Windows::UI::Xaml::Interop::TypeKind::Metadata, TypeInfo_Flags_IsSystemType | TypeInfo_Flags_None, // 2 L"Windows.UI.Xaml.Controls.UserControl", L"", nullptr, nullptr, nullptr, nullptr, -1, 0, 0, -1, ::Windows::UI::Xaml::Interop::TypeKind::Metadata, TypeInfo_Flags_IsSystemType | TypeInfo_Flags_None, // Last type here is for padding L"", L"", nullptr, nullptr, nullptr, nullptr, -1, 0, 0, -1, ::Windows::UI::Xaml::Interop::TypeKind::Custom, TypeInfo_Flags_None, }; const UINT TypeInfoLookup[] = { 0, // 0 0, // 1 0, // 2 0, // 3 0, // 4 0, // 5 0, // 6 0, // 7 0, // 8 0, // 9 0, // 10 0, // 11 0, // 12 0, // 13 0, // 14 0, // 15 0, // 16 0, // 17 0, // 18 0, // 19 0, // 20 0, // 21 0, // 22 0, // 23 0, // 24 0, // 25 0, // 26 1, // 27 1, // 28 1, // 29 2, // 30 2, // 31 2, // 32 2, // 33 2, // 34 2, // 35 2, // 36 3, // 37 }; const TypeInfo* GetTypeInfo(::Platform::String^ typeName) { auto typeNameLength = typeName->Length(); if (typeNameLength < _countof(TypeInfoLookup) - 1) { for (UINT i = TypeInfoLookup[typeNameLength]; i < TypeInfoLookup[typeNameLength+1]; i++) { if (typeName == ::Platform::StringReference(TypeInfos[i].typeName)) { return &TypeInfos[i]; } } } return nullptr; } ::Platform::Collections::Vector<::Windows::UI::Xaml::Markup::IXamlMetadataProvider^>^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::OtherProviders::get() { if(_otherProviders == nullptr) { auto otherProviders = ref new ::Platform::Collections::Vector<::Windows::UI::Xaml::Markup::IXamlMetadataProvider^>(); _otherProviders = otherProviders; } return _otherProviders; } ::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::CreateXamlType(::Platform::String^ typeName) { const TypeInfo* pTypeInfo = GetTypeInfo(typeName); const TypeInfo* pNextTypeInfo = pTypeInfo + 1; if (pTypeInfo == nullptr || pNextTypeInfo == nullptr) { return nullptr; } else if (pTypeInfo->flags & TypeInfo_Flags_IsSystemType) { return ref new ::XamlTypeInfo::InfoProvider::XamlSystemBaseType(typeName); } else { ::XamlTypeInfo::InfoProvider::XamlUserType^ userType = ref new ::XamlTypeInfo::InfoProvider::XamlUserType( this, ::Platform::StringReference(pTypeInfo->typeName), this->GetXamlTypeByName(::Platform::StringReference(pTypeInfo->baseTypeIndex >= 0 ? TypeInfos[pTypeInfo->baseTypeIndex].typeName : L""))); userType->KindOfType = pTypeInfo->kindofType; userType->Activator = pTypeInfo->activator; userType->CollectionAdd = pTypeInfo->collectionAdd; userType->DictionaryAdd = pTypeInfo->dictionaryAdd; userType->FromStringConverter = pTypeInfo->fromStringConverter; userType->ContentPropertyName = ::Platform::StringReference(pTypeInfo->contentPropertyName); userType->IsLocalType = pTypeInfo->flags & TypeInfo_Flags_IsLocalType; userType->IsReturnTypeStub = pTypeInfo->flags & TypeInfo_Flags_IsReturnTypeStub; userType->IsBindable = pTypeInfo->flags & TypeInfo_Flags_IsBindable; userType->IsMarkupExtension = pTypeInfo->flags & TypeInfo_Flags_IsMarkupExtension; userType->CreateFromStringMethod = nullptr; return userType; } } ::Windows::UI::Xaml::Markup::IXamlMember^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::CreateXamlMember(::Platform::String^ longMemberName) { ::XamlTypeInfo::InfoProvider::XamlMember^ xamlMember = nullptr; // No Local Properties (void)longMemberName; // Unused parameter return xamlMember; }