* GDK 2406

* Added VS2022.sln
This commit is contained in:
Fernando C 2024-06-18 17:33:07 -07:00 коммит произвёл GitHub
Родитель b1f4d50443
Коммит 8744d20a75
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
44 изменённых файлов: 4174 добавлений и 2590 удалений

Просмотреть файл

@ -0,0 +1,360 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<MSBuildAllProjects Condition="'$(MSBuildVersion)' == '' Or '$(MSBuildVersion)' &lt; '16.0'">$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
<HasSharedItems>true</HasSharedItems>
<ItemsProjectGuid>{cf3350e5-00a2-4647-a996-baf7542b0327}</ItemsProjectGuid>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions Condition="'$(ConfigurationType)'=='StaticLibrary'">_NO_ASYNCRTIMP;_NO_PPLXIMP;_NO_XSAPIIMP;XBL_API_NONE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(ConfigurationType)'=='DynamicLibrary'">_XSAPIIMP_EXPORT;XBL_API_EXPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>
$(MSBuildThisFileDirectory)..\..\Source\Services;
$(MSBuildThisFileDirectory)..\..\Source\Services\Achievements;
$(MSBuildThisFileDirectory)..\..\Source\Services\Common;
$(MSBuildThisFileDirectory)..\..\Source\Services\Common\Cpp;
$(MSBuildThisFileDirectory)..\..\Source\Services\Clubs;
$(MSBuildThisFileDirectory)..\..\Source\Services\Leaderboard;
$(MSBuildThisFileDirectory)..\..\Source\Services\Matchmaking;
$(MSBuildThisFileDirectory)..\..\Source\Services\MultiplayerActivity;
$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer;
$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\Manager;
$(MSBuildThisFileDirectory)..\..\Source\Services\Notification;
$(MSBuildThisFileDirectory)..\..\Source\Services\Presence;
$(MSBuildThisFileDirectory)..\..\Source\Services\RealTimeActivityManager;
$(MSBuildThisFileDirectory)..\..\Source\Services\Social;
$(MSBuildThisFileDirectory)..\..\Source\Services\Social\Manager;
$(MSBuildThisFileDirectory)..\..\Source\Services\StringVerify;
$(MSBuildThisFileDirectory)..\..\Source\Services\TCUI;
$(MSBuildThisFileDirectory)..\..\Source\Services\TitleStorage;
$(MSBuildThisFileDirectory)..\..\Source\Services\Privacy;
$(MSBuildThisFileDirectory)..\..\Source\Services\Stats;
$(MSBuildThisFileDirectory)..\..\Source\Services\Events;
$(MSBuildThisFileDirectory)..\..\Source\Shared;
$(MSBuildThisFileDirectory)..\..\Source\Shared\WinRT;
$(MSBuildThisFileDirectory)..\..\Source\Shared\Logger;
$(MSBuildThisFileDirectory)..\..\Source\System;
$(MSBuildThisFileDirectory)..\..\Source\System\WinRT;
%(AdditionalIncludeDirectories)
</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ProjectCapability Include="SourceItemsFromImports" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\cpprestsdk_impl.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\cpprest\astreambuf.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\cpprest\asyncrt_utils.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\cpprest\base_uri.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\cpprest\containerstream.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\cpprest\details\asyncrt_utils.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\cpprest\details\base64.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\cpprest\details\basic_types.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\cpprest\details\cpprest_compat.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\cpprest\details\http_client_msg.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\cpprest\details\http_helpers.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\cpprest\details\http_helpers.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\cpprest\details\http_msg.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\cpprest\details\json.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\cpprest\details\json_parsing.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\cpprest\details\json_serialization.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\cpprest\details\nosal.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\cpprest\details\SafeInt3.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\cpprest\details\uri.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\cpprest\details\uri_builder.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\cpprest\details\uri_parser.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\cpprest\details\uri_parser.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\cpprest\details\web_utilities.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\cpprest\http_headers.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\cpprest\http_msg.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\cpprest\json.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\cpprest\producerconsumerstream.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\cpprest\streams.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\cpprest\uri.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\cpprest\uri_builder.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\pplx\details\pplx.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\pplx\details\threadpool.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\pplx\pplx.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\pplx\pplxcancellation_token.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\pplx\pplxinterface.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\pplx\pplxtasks.110.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\pplx\pplxtasks.140.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\pplx\pplxtasks.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\pplx\threadpool.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\achievements.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\errors.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\http_call.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\http_call_request_message.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\impl\achievements.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\impl\errors.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\impl\events.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\impl\http_call.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\impl\http_call_request_message.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\impl\leaderboard.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\impl\matchmaking.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\impl\mem.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\impl\multiplayer.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\impl\multiplayer_manager.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\impl\notification.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\impl\presence.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\impl\privacy.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\impl\profile.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\impl\public_utils.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\impl\real_time_activity.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\impl\service_call_logging_config.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\impl\social.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\impl\social_manager.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\impl\string_verify.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\impl\system.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\impl\title_storage.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\impl\user_statistics.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\impl\xbox_live_app_config.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\impl\xbox_live_context.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\impl\xbox_live_context_settings.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\impl\xbox_service_call_routed_event_args.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\leaderboard.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\matchmaking.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\mem.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\multiplayer.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\multiplayer_manager.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\notification_helper.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\presence.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\privacy.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\profile.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\real_time_activity.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\services.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\service_call_logging_config.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\social.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\social_manager.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\string_verify.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\system.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\title_storage.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\types.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\user_statistics.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\xbox_live_app_config.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\xbox_live_context.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\xbox_live_context_settings.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-cpp\xbox_service_call_routed_event_args.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-c\achievements_c.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-c\achievements_manager_c.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-c\errors_c.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-c\events_c.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-c\game_invite_c.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-c\http_call_c.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-c\leaderboard_c.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-c\matchmaking_c.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-c\multiplayer_activity_c.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-c\multiplayer_c.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-c\multiplayer_manager_c.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-c\notification_c.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-c\pal.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-c\platform_c.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-c\presence_c.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-c\privacy_c.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-c\profile_c.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-c\real_time_activity_c.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-c\services_c.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-c\social_c.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-c\social_manager_c.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-c\string_verify_c.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-c\title_managed_statistics_c.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-c\title_storage_c.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-c\types_c.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-c\user_statistics_c.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-c\xbox_live_context_c.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-c\xbox_live_context_settings_c.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Include\xsapi-c\xbox_live_global_c.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Achievements\achievements_internal.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Achievements\Manager\achievements_manager_internal.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Common\Cpp\pch.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Common\pch_common.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Common\xbox_live_context_internal.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Common\xbox_live_context_settings_internal.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Leaderboard\leaderboard_internal.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Matchmaking\matchmaking_internal.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\MultiplayerActivity\multiplayer_activity_internal.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\Manager\multiplayer_manager_internal.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\multiplayer_internal.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Presence\presence_internal.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Privacy\privacy_service_internal.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\RealTimeActivityManager\real_time_activity_connection.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\RealTimeActivityManager\real_time_activity_manager.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\RealTimeActivityManager\real_time_activity_subscription.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Social\Manager\peoplehub_service.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Social\Manager\social_graph.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Social\Manager\social_manager_internal.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Social\Manager\social_manager_user_group.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Social\profile_internal.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Social\social_internal.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Stats\title_managed_statistics_internal.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Stats\user_statistics_internal.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\StringVerify\string_service_internal.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\TitleStorage\title_storage_internal.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\async_helpers.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\build_version.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\enum_traits.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\errors_legacy.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\fault_injection.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\global_state.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\HookedUri\asyncrt_utils.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\HookedUri\base_uri.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\HookedUri\details\asyncrt_utils.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\HookedUri\details\basic_types.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\HookedUri\details\cpprest_compat.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\HookedUri\details\nosal.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\HookedUri\details\uri.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\HookedUri\details\uri_builder.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\HookedUri\details\uri_parser.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\HookedUri\details\uri_parser.hpp" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\HookedUri\uri.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\HookedUri\uri_builder.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\http_call_request_message_internal.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\http_call_wrapper_internal.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\http_headers.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\http_utils.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\internal_errors.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\internal_mem.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\internal_types.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\Logger\log.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\Logger\log_hc_output.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\perf_tester.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\public_utils_legacy.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\ref_counter.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\service_call_routed_handler.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\shared_macros.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\string_array.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\uri_impl.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\user.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\web_socket.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\xbox_live_app_config_internal.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\xsapi_json_utils.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\xsapi_utils.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\System\client_operation.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\System\local_storage.h" />
</ItemGroup>
<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)..\..\Include\cpprestinclude\cpprest\details\http_constants.dat" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Achievements\achievements_api.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Achievements\achievements_result.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Achievements\achievements_subscription.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Achievements\achievement_service_internal.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Achievements\Manager\achievements_manager_api.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Achievements\Manager\achievements_manager_internal.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Common\Cpp\pch.cpp">
<PrecompiledHeader>Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Common\xbox_live_context.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Common\xbox_live_context_api.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Common\xbox_live_context_settings.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Common\xbox_live_global_api.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Leaderboard\leaderboard_column.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Leaderboard\leaderboard_result.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Leaderboard\leaderboard_row.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Leaderboard\leaderboard_service.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Matchmaking\hopper_statistics_response.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Matchmaking\matchmaking_service.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Matchmaking\match_ticket_details_response.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\MultiplayerActivity\multiplayer_activity_api.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\MultiplayerActivity\multiplayer_activity_info.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\MultiplayerActivity\multiplayer_activity_service.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\Manager\multiplayer_client_manager.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\Manager\multiplayer_client_pending_reader.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\Manager\multiplayer_client_pending_request.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\Manager\multiplayer_event_args.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\Manager\multiplayer_event_queue.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\Manager\multiplayer_game_client.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\Manager\multiplayer_game_session.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\Manager\multiplayer_lobby_client.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\Manager\multiplayer_lobby_session.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\Manager\multiplayer_local_user.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\Manager\multiplayer_local_user_manager.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\Manager\multiplayer_manager.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\Manager\multiplayer_manager_api.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\Manager\multiplayer_manager_utils.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\Manager\multiplayer_match_client.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\Manager\multiplayer_member.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\Manager\multiplayer_session_writer.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\multiplayer_activity_handle_post_request.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\multiplayer_activity_query_post_request.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\multiplayer_api.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\multiplayer_invite_handle_post_request.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\multiplayer_query_search_handle_request.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\multiplayer_search_handle_details.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\multiplayer_search_handle_request.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\multiplayer_serializers.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\multiplayer_service.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\multiplayer_session.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\multiplayer_session_member.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\multiplayer_session_reference.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\multiplayer_subscription.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Multiplayer\multiplayer_transfer_handle_post_request.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Presence\device_presence_change_subscription.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Presence\presence_api.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Presence\presence_device_record.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Presence\presence_record.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Presence\presence_service.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Presence\presence_title_request.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Presence\presence_user_batch_request.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Presence\title_presence_change_subscription.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Privacy\permission_check_result.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Privacy\privacy_api.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Privacy\privacy_service.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\RealTimeActivityManager\real_time_activity_api.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\RealTimeActivityManager\real_time_activity_connection.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\RealTimeActivityManager\real_time_activity_manager.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Social\Manager\peoplehub_service.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Social\Manager\social_graph.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Social\Manager\social_manager.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Social\Manager\social_manager_api.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Social\Manager\social_manager_user_group.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Social\profile_api.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Social\profile_service.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Social\reputation_feedback_request.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Social\reputation_service.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Social\social_api.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Social\social_relationship_change_subscription.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Social\social_relationship_result.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Social\social_service.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Stats\requested_statistics.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Stats\service_configuration_statistic.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Stats\statistic.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Stats\statistic_change_subscription.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Stats\title_managed_statistics_api.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Stats\title_managed_statistics_service.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Stats\user_statistics_api.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Stats\user_statistics_result.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Stats\user_statistics_service.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\StringVerify\string_service.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\StringVerify\verify_string_result.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\TitleStorage\title_storage_api.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\TitleStorage\title_storage_blob_metadata_result.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\TitleStorage\title_storage_service.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\async_helpers.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\errors.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\fault_injection.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\global_state.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\http_call_api.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\http_call_request_message.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\http_call_wrapper_internal.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\http_utils.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\internal_mem.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\Logger\log.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\Logger\log_entry.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\Logger\log_hc_output.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\Logger\log_output.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\public_utils_legacy.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\ref_counter.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\service_call_routed_handler.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\user.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\utils_locales.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\web_socket.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\xbox_live_app_config.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\xsapi_json_utils.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Shared\xsapi_utils.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\System\local_storage.cpp" />
</ItemGroup>
</Project>

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<MSBuildAllProjects Condition="'$(MSBuildVersion)' == '' Or '$(MSBuildVersion)' &lt; '16.0'">$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
<HasSharedItems>true</HasSharedItems>
<ItemsProjectGuid>{1e320494-894e-4feb-90ca-df4fe20499f4}</ItemsProjectGuid>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>XSAPI_NO_PPL=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(MSBuildThisFileDirectory)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ProjectCapability Include="SourceItemsFromImports" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Events\events_service_api.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Events\events_service_etw.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Events\events_service_gdk.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Events\events_service.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Events\events_service_etw.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Events\events_service_gdk.h" />
</ItemGroup>
</Project>

Просмотреть файл

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source">
<UniqueIdentifier>{a7468e1e-9c65-4f1a-97db-702dd3013d46}</UniqueIdentifier>
</Filter>
<Filter Include="Source\Shared">
<UniqueIdentifier>{83fa3d12-617a-48df-9de0-edffcc78503e}</UniqueIdentifier>
</Filter>
<Filter Include="Source\Shared\WinRT">
<UniqueIdentifier>{7758f7f5-95ff-453a-a531-200c4dec6794}</UniqueIdentifier>
</Filter>
<Filter Include="Source\Services">
<UniqueIdentifier>{b451b690-ab47-47b5-a948-e9a544907b98}</UniqueIdentifier>
</Filter>
<Filter Include="Source\Services\Events">
<UniqueIdentifier>{4593c653-a41d-403c-90d3-098726781331}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Events\events_service_api.cpp">
<Filter>Source\Services\Events</Filter>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Events\events_service_gdk.cpp">
<Filter>Source\Services\Events</Filter>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Events\events_service_etw.cpp">
<Filter>Source\Services\Events</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Events\events_service.h">
<Filter>Source\Services\Events</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Events\events_service_gdk.h">
<Filter>Source\Services\Events</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\..\Source\Services\Events\events_service_etw.h">
<Filter>Source\Services\Events</Filter>
</ClInclude>
</ItemGroup>
</Project>

Просмотреть файл

@ -60,10 +60,13 @@ EXPORTS
HCHttpCallSetContext
HCHttpCallSetTracing
HCInitialize
HCIsInitialized
HCMemGetFunctions
HCMemSetFunctions
HCMockAddMock
HCMockCallCloseHandle
HCMockCallCreate
HCMockCallDuplicateHandle
HCMockClearMocks
HCMockRemoveMock
HCMockResponseSetHeader
@ -79,8 +82,10 @@ EXPORTS
HCSettingsSetTraceLevel
HCSetWebSocketFunctions
HCTraceImplMessage
HCTraceImplMessage_v
HCTraceImplScopeId
HCTraceSetClientCallback
HCTraceSetEtwEnabled
HCTraceSetPlatformCallbacks
HCTraceSetTraceToDebugger
HCWebSocketCloseHandle
@ -88,6 +93,7 @@ EXPORTS
HCWebSocketCreate
HCWebSocketDisconnect
HCWebSocketDuplicateHandle
HCWebSocketGetBinaryMessageFragmentEventFunction
HCWebSocketGetEventFunctions
HCWebSocketGetHeader
HCWebSocketGetHeaderAtIndex
@ -95,11 +101,14 @@ EXPORTS
HCWebSocketGetProxyUri
HCWebSocketSendBinaryMessageAsync
HCWebSocketSendMessageAsync
HCWebSocketSetBinaryMessageFragmentEventFunction
HCWebSocketSetHeader
HCWebSocketSetMaxReceiveBufferSize
HCWebSocketSetProxyDecryptsHttps
HCWebSocketSetProxyUri
XalAddUserWithUiAsync
XalAddUserWithUiResult
XalCheckUcsConsentForAllUsers
XalCleanupAsync
XalCleanupResult
XalCompareUsers
@ -116,11 +125,14 @@ EXPORTS
XalPlatformCryptoSetCallbacks
XalPlatformDateTimeSetCallbacks
XalPlatformRemoteConnectCancelPrompt
XalPlatformRemoteConnectClearEventHandlers
XalPlatformRemoteConnectSetEventHandlers
XalPlatformStorageClearComplete
XalPlatformStorageClearEventHandlers
XalPlatformStorageReadComplete
XalPlatformStorageSetEventHandlers
XalPlatformStorageWriteComplete
XalPlatformWebClearEventHandler
XalPlatformWebSetEventHandler
XalPlatformWebShowUrlComplete
XalSignOutUserAsync
@ -131,6 +143,7 @@ EXPORTS
XalTryAddUserByIdAsync
XalTryAddUserByIdResult
XalUserCheckPrivilege
XalUserCheckUcsConsent
XalUserCloseHandle
XalUserCloseSignoutDeferral
XalUserDuplicateHandle
@ -149,6 +162,8 @@ EXPORTS
XalUserGetTokenAndSignatureSilentlyResultSize
XalUserIsDevice
XalUserIsGuest
XalUserManageUcsConsentWithUiAsync
XalUserManageUcsConsentWithUiResult
XalUserRegisterChangeEventHandler
XalUserResolveIssueWithUiAsync
XalUserResolveIssueWithUiResult

2
External/Xal/External/libHttpClient поставляемый

@ -1 +1 @@
Subproject commit 0b7a07d2b3c97eb8fa8767164d6b1d8a97292f5f
Subproject commit 3e15e834f6a203b66b80273b889bf0d65a147403

12
External/Xal/Source/Xal/Include/Xal/xal.h поставляемый
Просмотреть файл

@ -270,6 +270,18 @@ STDAPI XalFindUserByLocalId(
_Out_ XalUserHandle* user
) noexcept;
/// <summary>
/// Checks if the given consent is opted in by all the users in the user set.
/// </summary>
/// <param name="consentModelName">The UCS consent model name.</param>
/// <param name="canOptIn">True if all the users in the user set are opted in.</param>
/// <returns>Result code for this API operation. Possible values are S_OK,
/// E_XAL_NOTINITIALIZED, E_XAL_UNLISTEDCONSENT, or E_FAIL.</returns>
STDAPI XalCheckUcsConsentForAllUsers(
_In_z_ char const* consentModelName,
_Out_ bool* canOptIn
) noexcept;
}
// Back compat apis

Просмотреть файл

@ -101,6 +101,16 @@ typedef struct XalAndroidArgs
/// </summary>
_Field_z_ char const* redirectUri;
/// <summary>
/// The number of consents present in the ucsConsents array
/// </summary>
uint32_t ucsConsentCount;
/// <summary>
/// An optional list of consent requests to UCS
/// </summary>
_Field_size_(ucsConsentCount) char const** ucsConsents;
} XalAndroidArgs;
typedef XalAndroidArgs XalInitArgs;

Просмотреть файл

@ -66,6 +66,16 @@ typedef struct XalAppleArgs
/// The app custom redirect URI. (Optional on macOS).
/// </summary>
_Field_z_ char const* redirectUri;
/// <summary>
/// The number of consents present in the ucsConsents array
/// </summary>
uint32_t ucsConsentCount;
/// <summary>
/// An optional list of consent requests to UCS
/// </summary>
_Field_size_(ucsConsentCount) char const** ucsConsents;
} XalAppleArgs;
typedef XalAppleArgs XalInitArgs;

Просмотреть файл

@ -91,6 +91,16 @@ typedef struct XalGenericArgs
/// </summary>
_Field_z_ char const* redirectUri;
/// <summary>
/// The number of consents present in the ucsConsents array
/// </summary>
uint32_t ucsConsentCount;
/// <summary>
/// An optional list of consent requests to UCS
/// </summary>
_Field_size_(ucsConsentCount) char const** ucsConsents;
bool useRemoteAuth;
XalGenericDeviceInfo deviceInfo;

Просмотреть файл

@ -15,6 +15,7 @@ extern "C"
// GDK types
//------------------------------------------------------------------------------
#define XAL_OS_ERRORS 1
#define XAL_OS_IMPL 1
typedef XUserHandle XalUserHandle;

Просмотреть файл

@ -22,8 +22,6 @@
#include <Xal/xal_xdk.h>
#elif HC_PLATFORM == HC_PLATFORM_GDK
#include <Xal/xal_gsdk.h>
#elif HC_PLATFORM == HC_PLATFORM_GRTS
#include <Xal/xal_grts.h>
#elif HC_PLATFORM == HC_PLATFORM_ANDROID
#include <Xal/xal_android.h>
#elif HC_PLATFORM_IS_APPLE
@ -42,14 +40,12 @@
#define XAL_ENABLE_BACK_COMPAT_SHIMS 1
#endif
#if HC_PLATFORM == HC_PLATFORM_GRTS
#ifndef FEATURE_ASSERTS_ENABLED
#if defined(DBG)
#define FEATURE_ASSERTS_ENABLED 1
#else
#define FEATURE_ASSERTS_ENABLED 0
#endif
#ifndef XAL_OS_ERRORS
#define XAL_OS_ERRORS 0
#endif
#ifndef XAL_CUSTOM_ALLOCATOR
#define XAL_CUSTOM_ALLOCATOR 1
#endif
extern "C"
@ -87,6 +83,8 @@ extern "C"
#define E_XAL_CONTENT_ISOLATION MAKE_E_HC(0x5119L) // 0x89235119
#define E_XAL_SANDBOX_NOT_ALLOWED MAKE_E_HC(0x511AL) // 0x8923511A
#define E_XAL_GAMEWINDOWNOTFOREGROUND MAKE_E_HC(0x511BL) // 0x8923511B
#define E_XAL_UNLISTEDCONSENT MAKE_E_HC(0x511CL) // 0x8923511C
#define E_XAL_CONSENTNOTAPPLICABLE MAKE_E_HC(0x511DL) // 0x8923511D
// E_XAL_INTERNAL_* values should never be returned to callers of XAL.
#define E_XAL_INTERNAL_SWITCHUSER MAKE_E_HC(0x5171L) // 0x89235171
@ -98,7 +96,7 @@ extern "C"
#define E_XAL_INTERNAL_NODISPLAYCLAIMSFOUND MAKE_E_HC(0x5177L) // 0x89235177
// GDK has system definitions for some error values
#if HC_PLATFORM == HC_PLATFORM_GDK || HC_PLATFORM == HC_PLATFORM_GRTS
#if XAL_OS_ERRORS
#undef E_XAL_USERSETFULL
#undef E_XAL_USERSIGNEDOUT
#undef E_XAL_UIREQUIRED
@ -267,6 +265,28 @@ typedef enum XalGamerPictureSize
XalGamerPictureSize_ExtraLarge = 3,
} XalGamerPictureSize;
/// <summary>
/// Enum defining the possible consent states.
/// </summary>
/// <remarks>
/// The different states provide additional information for the client to adapt
/// the UX, but only Opted In can be used as a positive signal, the rest should
/// all be treated as Opted Out.
/// </remarks>
typedef enum XalConsentState
{
/// <summary>Unkown consent state due to query failure</summary>
/// <remarks>Should treat as Opted Out</remarks>
XalConsentState_QueryFailure = 0,
/// <summary>Model does not exist or does not apply for user</summary>
/// <remarks>Should treat as Opted Out</remarks>
XalConsentState_NotApplicable = 1,
/// <summary>User has been opted out</summary>
XalConsentState_OptedOut = 2,
/// <summary>User has been opted in</summary>
XalConsentState_OptedIn = 3,
} XalConsentState;
/// <summary>
/// Enum defining the various gamertag components.
/// </summary>
@ -384,6 +404,11 @@ typedef struct XalUserGetTokenAndSignatureArgs
/// Get a token for all users.
/// </summary>
bool allUsers;
/// <summary>
/// Get a token with or without TitleIdentity.
/// </summary>
bool ignoreTitleIdentity;
} XalUserGetTokenAndSignatureArgs;
/// <summary>

Просмотреть файл

@ -318,6 +318,47 @@ STDAPI XalUserResolveIssueWithUiResult(
_In_ XAsyncBlock* async
) noexcept;
//-----------------------------------------------------------------------------
// UCS consent
/// <summary>
/// Checks the state of the given UCS consent for the user.
/// </summary>
/// <param name="user">The user object.</param>
/// <param name="consentModelName">The UCS consent model name.</param>
/// <param name="consentState">The state of the consent.</param>
/// <returns>Result code for this API operation.</returns>
STDAPI XalUserCheckUcsConsent(
_In_ XalUserHandle user,
_In_z_ char const* consentModelName,
_Out_ XalConsentState* consentState
) noexcept;
/// <summary>
/// Shows ui explaining why the user is missing the given privilege and
/// allows acquiring it.
/// </summary>
/// <param name="user">The user object.</param>
/// <param name="consentModelName">The UCS consent model name.</param>
/// <param name="async">The AsyncBlock for this operation.</param>
/// <returns>Result code for this API operation.</returns>
STDAPI XalUserManageUcsConsentWithUiAsync(
_In_ XalUserHandle user,
_In_z_ char const* consentModelName,
_In_ XAsyncBlock* async
) noexcept;
/// <summary>
/// Get the result of a given XalUserManageUcsConsentWithUiAsync operation.
/// </summary>
/// <param name="async">The AsyncBlock for this operation.</param>
/// <param name="consentState">The state of the consent.</param>
/// <returns>Result code for this API operation.</returns>
STDAPI XalUserManageUcsConsentWithUiResult(
_In_ XAsyncBlock* async,
_Out_ XalConsentState* consentState
) noexcept;
//-----------------------------------------------------------------------------
// Events

Просмотреть файл

@ -20,6 +20,6 @@ extern "C"
/// YYYYMMDD Date string describing the date the build was created
/// rrr QFE number (000 indicates base release)
/// </summary>
#define XAL_VERSION "2023.05.20230616.001"
#define XAL_VERSION "2024.02.20240220.000"
}

Просмотреть файл

@ -68,6 +68,16 @@ typedef struct XalWin32Args
/// Win32 optional custom redirect URI.
/// </summary>
_Field_z_ char const* redirectUri;
/// <summary>
/// The number of consents present in the ucsConsents array
/// </summary>
uint32_t ucsConsentCount;
/// <summary>
/// An optional list of consent requests to UCS
/// </summary>
_Field_size_(ucsConsentCount) char const** ucsConsents;
} XalWin32Args;
typedef XalWin32Args XalInitArgs;

Просмотреть файл

@ -4,40 +4,50 @@
#pragma warning( disable : 26444 ) // ignore various unnamed objects
#endif
/***
* ==++==
* Copyright (C) Microsoft. All rights reserved.
* Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
*
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* ==--==
* =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
* =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
*
* Asynchronous I/O: stream buffer. This is an extension to the PPL concurrency features and therefore
* lives in the Concurrency namespace.
*
* For the latest on this and related APIs, please see: https://github.com/Microsoft/cpprestsdk
*
* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
****/
#pragma once
#include <ios>
#include <memory>
#include <cstring>
#include <math.h>
#include "pplx/pplxtasks.h"
#include "cpprest/details/basic_types.h"
#include "cpprest/asyncrt_utils.h"
#include "cpprest/details/basic_types.h"
#include "pplx/pplxtasks.h"
#include <atomic>
#include <cstring>
#include <ios>
#include <math.h>
#include <memory>
#if (defined(_MSC_VER) && (_MSC_VER >= 1800)) && !CPPREST_FORCE_PPLX
namespace Concurrency // since namespace pplx = Concurrency
#else
namespace pplx
#endif
{
namespace details
{
template<class F, class T = bool>
pplx::task<T> _do_while(F func)
{
pplx::task<T> first = func();
return first.then([=](bool guard) -> pplx::task<T> {
if (guard)
return pplx::details::_do_while<F, T>(func);
else
return first;
});
}
} // namespace details
}
namespace Concurrency
{
@ -59,7 +69,10 @@ namespace streams
/// requires an asynchronous call in a given situation.
/// </summary>
/// <returns>An <c>int_type</c> value which implies that an asynchronous call is required.</returns>
static typename std::char_traits<_CharType>::int_type requires_async() { return std::char_traits<_CharType>::eof()-1; }
static typename std::char_traits<_CharType>::int_type requires_async()
{
return std::char_traits<_CharType>::eof() - 1;
}
};
#if !defined(_WIN32)
template<>
@ -81,25 +94,28 @@ namespace streams
static void assign(unsigned char& left, const unsigned char& right) { left = right; }
static unsigned char* assign(unsigned char* left, size_t n, unsigned char value)
{
return reinterpret_cast<unsigned char*>(std::char_traits<char>::assign(reinterpret_cast<char*>(left), n, static_cast<char>(value)));
return reinterpret_cast<unsigned char*>(
std::char_traits<char>::assign(reinterpret_cast<char*>(left), n, static_cast<char>(value)));
}
static unsigned char* copy(unsigned char* left, const unsigned char* right, size_t n)
{
return reinterpret_cast<unsigned char*>(std::char_traits<char>::copy(reinterpret_cast<char*>(left), reinterpret_cast<const char*>(right), n));
return reinterpret_cast<unsigned char*>(
std::char_traits<char>::copy(reinterpret_cast<char*>(left), reinterpret_cast<const char*>(right), n));
}
static unsigned char* move(unsigned char* left, const unsigned char* right, size_t n)
{
return reinterpret_cast<unsigned char*>(std::char_traits<char>::move(reinterpret_cast<char*>(left), reinterpret_cast<const char*>(right), n));
return reinterpret_cast<unsigned char*>(
std::char_traits<char>::move(reinterpret_cast<char*>(left), reinterpret_cast<const char*>(right), n));
}
static int_type requires_async() { return eof() - 1; }
};
#endif
namespace details {
namespace details
{
/// <summary>
/// Stream buffer base class.
/// </summary>
@ -114,7 +130,6 @@ namespace streams
typedef typename traits::pos_type pos_type;
typedef typename traits::off_type off_type;
/// <summary>
/// Virtual constructor for stream buffers.
/// </summary>
@ -158,7 +173,9 @@ namespace streams
/// </summary>
/// <param name="size">The size to use for internal buffering, 0 if no buffering should be done.</param>
/// <param name="direction">The direction of buffering (in or out)</param>
/// <remarks>An implementation that does not support buffering will silently ignore calls to this function and it will not have any effect on what is returned by subsequent calls to <see cref="::buffer_size method" />.</remarks>
/// <remarks>An implementation that does not support buffering will silently ignore calls to this function and it
/// will not have any effect on what is returned by subsequent calls to <see cref="::buffer_size method"
/// />.</remarks>
virtual void set_buffer_size(size_t size, std::ios_base::openmode direction = std::ios_base::in) = 0;
/// <summary>
@ -191,7 +208,8 @@ namespace streams
/// Writes a single character to the stream.
/// </summary>
/// <param name="ch">The character to write</param>
/// <returns>A <c>task</c> that holds the value of the character. This value is EOF if the write operation fails.</returns>
/// <returns>A <c>task</c> that holds the value of the character. This value is EOF if the write operation
/// fails.</returns>
virtual pplx::task<int_type> putc(_CharType ch) = 0;
/// <summary>
@ -220,8 +238,8 @@ namespace streams
/// <summary>
/// Reads a single character from the stream and advances the read position.
/// </summary>
/// <returns>The value of the character. <c>-1</c> if the read fails. <c>-2</c> if an asynchronous read is required</returns>
/// <remarks>This is a synchronous operation, but is guaranteed to never block.</remarks>
/// <returns>The value of the character. <c>-1</c> if the read fails. <c>-2</c> if an asynchronous read is
/// required</returns> <remarks>This is a synchronous operation, but is guaranteed to never block.</remarks>
virtual int_type sbumpc() = 0;
/// <summary>
@ -233,8 +251,9 @@ namespace streams
/// <summary>
/// Reads a single character from the stream without advancing the read position.
/// </summary>
/// <returns>The value of the character. EOF if the read fails. <see cref="::requires_async method" /> if an asynchronous read is required</returns>
/// <remarks>This is a synchronous operation, but is guaranteed to never block.</remarks>
/// <returns>The value of the character. EOF if the read fails. <see cref="::requires_async method" /> if an
/// asynchronous read is required</returns> <remarks>This is a synchronous operation, but is guaranteed to never
/// block.</remarks>
virtual int_type sgetc() = 0;
/// <summary>
@ -246,7 +265,8 @@ namespace streams
/// <summary>
/// Retreats the read position, then returns the current character without advancing.
/// </summary>
/// <returns>A <c>task</c> that holds the value of the character. This value is EOF if the read fails, <c>requires_async</c> if an asynchronous read is required</returns>
/// <returns>A <c>task</c> that holds the value of the character. This value is EOF if the read fails,
/// <c>requires_async</c> if an asynchronous read is required</returns>
virtual pplx::task<int_type> ungetc() = 0;
/// <summary>
@ -254,7 +274,8 @@ namespace streams
/// </summary>
/// <param name="ptr">The address of the target memory area.</param>
/// <param name="count">The maximum number of characters to read.</param>
/// <returns>A <c>task</c> that holds the number of characters read. This value is O if the end of the stream is reached.</returns>
/// <returns>A <c>task</c> that holds the number of characters read. This value is O if the end of the stream is
/// reached.</returns>
virtual pplx::task<size_t> getn(_Out_writes_(count) _CharType* ptr, _In_ size_t count) = 0;
/// <summary>
@ -262,8 +283,8 @@ namespace streams
/// </summary>
/// <param name="ptr">The address of the target memory area.</param>
/// <param name="count">The maximum number of characters to read.</param>
/// <returns>The number of characters copied. O if the end of the stream is reached or an asynchronous read is required.</returns>
/// <remarks>This is a synchronous operation, but is guaranteed to never block.</remarks>
/// <returns>The number of characters copied. O if the end of the stream is reached or an asynchronous read is
/// required.</returns> <remarks>This is a synchronous operation, but is guaranteed to never block.</remarks>
virtual size_t scopy(_Out_writes_(count) _CharType* ptr, _In_ size_t count) = 0;
/// <summary>
@ -272,7 +293,8 @@ namespace streams
/// <param name="direction">The I/O direction to seek (see remarks)</param>
/// <returns>The current position. EOF if the operation fails.</returns>
/// <remarks>Some streams may have separate write and read cursors.
/// For such streams, the direction parameter defines whether to move the read or the write cursor.</remarks>
/// For such streams, the direction parameter defines whether to move the read or the write
/// cursor.</remarks>
virtual pos_type getpos(std::ios_base::openmode direction) const = 0;
/// <summary>
@ -287,7 +309,8 @@ namespace streams
/// <param name="pos">The offset from the beginning of the stream.</param>
/// <param name="direction">The I/O direction to seek (see remarks).</param>
/// <returns>The position. EOF if the operation fails.</returns>
/// <remarks>Some streams may have separate write and read cursors. For such streams, the direction parameter defines whether to move the read or the write cursor.</remarks>
/// <remarks>Some streams may have separate write and read cursors. For such streams, the direction parameter
/// defines whether to move the read or the write cursor.</remarks>
virtual pos_type seekpos(pos_type pos, std::ios_base::openmode direction) = 0;
/// <summary>
@ -323,7 +346,8 @@ namespace streams
/// Allocates a contiguous memory block and returns it.
/// </summary>
/// <param name="count">The number of characters to allocate.</param>
/// <returns>A pointer to a block to write to, null if the stream buffer implementation does not support alloc/commit.</returns>
/// <returns>A pointer to a block to write to, null if the stream buffer implementation does not support
/// alloc/commit.</returns>
virtual _CharType* alloc(_In_ size_t count) = 0;
/// <summary>
@ -336,7 +360,7 @@ namespace streams
/// Gets a pointer to the next already allocated contiguous block of data.
/// </summary>
/// <param name="ptr">A reference to a pointer variable that will hold the address of the block on success.</param>
/// <param name="count">The number of contiguous characters available at the address in 'ptr.'</param>
/// <param name="count">The number of contiguous characters available at the address in 'ptr'.</param>
/// <returns><c>true</c> if the operation succeeded, <c>false</c> otherwise.</returns>
/// <remarks>
/// A return of false does not necessarily indicate that a subsequent read operation would fail, only that
@ -348,8 +372,8 @@ namespace streams
virtual bool acquire(_Out_ _CharType*& ptr, _Out_ size_t& count) = 0;
/// <summary>
/// Releases a block of data acquired using <see cref="::acquire method"/>. This frees the stream buffer to de-allocate the
/// memory, if it so desires. Move the read position ahead by the count.
/// Releases a block of data acquired using <see cref="::acquire method"/>. This frees the stream buffer to
/// de-allocate the memory, if it so desires. Move the read position ahead by the count.
/// </summary>
/// <param name="ptr">A pointer to the block of data to be released.</param>
/// <param name="count">The number of characters that were read.</param>
@ -362,9 +386,9 @@ namespace streams
virtual std::exception_ptr exception() const = 0;
};
template<typename _CharType>
class streambuf_state_manager : public basic_streambuf<_CharType>, public std::enable_shared_from_this<streambuf_state_manager<_CharType>>
class streambuf_state_manager : public basic_streambuf<_CharType>,
public std::enable_shared_from_this<streambuf_state_manager<_CharType>>
{
public:
typedef typename details::basic_streambuf<_CharType>::traits traits;
@ -375,27 +399,18 @@ namespace streams
/// <summary>
/// <c>can_read</c> is used to determine whether a stream buffer will support read operations (get).
/// </summary>
virtual bool can_read() const
{
return m_stream_can_read;
}
virtual bool can_read() const { return m_stream_can_read; }
/// <summary>
/// <c>can_write</c> is used to determine whether a stream buffer will support write operations (put).
/// </summary>
virtual bool can_write() const
{
return m_stream_can_write;
}
virtual bool can_write() const { return m_stream_can_write; }
/// <summary>
/// Checks if the stream buffer is open.
/// </summary>
/// <remarks>No separation is made between open for reading and open for writing.</remarks>
virtual bool is_open() const
{
return can_read() || can_write();
}
virtual bool is_open() const { return can_read() || can_write(); }
/// <summary>
/// Closes the stream buffer, preventing further read or write operations.
@ -405,7 +420,8 @@ namespace streams
{
pplx::task<void> closeOp = pplx::task_from_result();
if (mode & std::ios_base::in && can_read()) {
if (mode & std::ios_base::in && can_read())
{
closeOp = _close_read();
}
@ -413,17 +429,12 @@ namespace streams
// accessing the members is invalid, use shared_from_this to avoid access violation exception.
auto this_ptr = std::static_pointer_cast<streambuf_state_manager>(this->shared_from_this());
if (mode & std::ios_base::out && can_write()) {
if (mode & std::ios_base::out && can_write())
{
if (closeOp.is_done())
closeOp = closeOp && _close_write().then([this_ptr] {}); // passing down exceptions from closeOp
else
closeOp = closeOp.then([this_ptr] { return this_ptr->_close_write().then([this_ptr] {}); });
closeOp.then([](pplx::task<void> t)
{
try { t.get(); }
catch (...) {}
});
}
return closeOp;
@ -436,18 +447,14 @@ namespace streams
/// <param name="eptr">Pointer to the exception.</param>
virtual pplx::task<void> close(std::ios_base::openmode mode, std::exception_ptr eptr)
{
if (m_currentException == nullptr)
m_currentException = eptr;
if (m_currentException == nullptr) m_currentException = eptr;
return close(mode);
}
/// <summary>
/// <c>is_eof</c> is used to determine whether a read head has reached the end of the buffer.
/// </summary>
virtual bool is_eof() const
{
return m_stream_read_eof;
}
virtual bool is_eof() const { return m_stream_read_eof; }
/// <summary>
/// Writes a single character to the stream.
@ -456,8 +463,7 @@ namespace streams
/// <returns>The value of the character. EOF if the write operation fails</returns>
virtual pplx::task<int_type> putc(_CharType ch)
{
if (!can_write())
return create_exception_checked_value_task<int_type>(traits::eof());
if (!can_write()) return create_exception_checked_value_task<int_type>(traits::eof());
return create_exception_checked_task<int_type>(_putc(ch), [](int_type) {
return false; // no EOF for write
@ -470,13 +476,12 @@ namespace streams
/// <param name="ptr">A pointer to the block of data to be written.</param>
/// <param name="count">The number of characters to write.</param>
/// <returns>The number of characters actually written, either 'count' or 0.</returns>
CASABLANCA_DEPRECATED("This API in some cases performs a copy. It is deprecated and will be removed in a future release. Use putn_nocopy instead.")
CASABLANCA_DEPRECATED("This API in some cases performs a copy. It is deprecated and will be removed in a future "
"release. Use putn_nocopy instead.")
virtual pplx::task<size_t> putn(const _CharType* ptr, size_t count)
{
if (!can_write())
return create_exception_checked_value_task<size_t>(0);
if (count == 0)
return pplx::task_from_result<size_t>(0);
if (!can_write()) return create_exception_checked_value_task<size_t>(0);
if (count == 0) return pplx::task_from_result<size_t>(0);
return create_exception_checked_task<size_t>(_putn(ptr, count, true), [](size_t) {
return false; // no EOF for write
@ -492,10 +497,8 @@ namespace streams
/// <returns>A <c>task</c> that holds the number of characters actually written, either 'count' or 0.</returns>
virtual pplx::task<size_t> putn_nocopy(const _CharType* ptr, size_t count)
{
if (!can_write())
return create_exception_checked_value_task<size_t>(0);
if (count == 0)
return pplx::task_from_result<size_t>(0);
if (!can_write()) return create_exception_checked_value_task<size_t>(0);
if (count == 0) return pplx::task_from_result<size_t>(0);
return create_exception_checked_task<size_t>(_putn(ptr, count), [](size_t) {
return false; // no EOF for write
@ -511,22 +514,19 @@ namespace streams
if (!can_read())
return create_exception_checked_value_task<int_type>(streambuf_state_manager<_CharType>::traits::eof());
return create_exception_checked_task<int_type>(_bumpc(), [](int_type val) {
return val == streambuf_state_manager<_CharType>::traits::eof();
});
return create_exception_checked_task<int_type>(
_bumpc(), [](int_type val) { return val == streambuf_state_manager<_CharType>::traits::eof(); });
}
/// <summary>
/// Reads a single character from the stream and advances the read position.
/// </summary>
/// <returns>The value of the character. <c>-1</c> if the read fails. <c>-2</c> if an asynchronous read is required</returns>
/// <remarks>This is a synchronous operation, but is guaranteed to never block.</remarks>
/// <returns>The value of the character. <c>-1</c> if the read fails. <c>-2</c> if an asynchronous read is
/// required</returns> <remarks>This is a synchronous operation, but is guaranteed to never block.</remarks>
virtual int_type sbumpc()
{
if ( !(m_currentException == nullptr) )
std::rethrow_exception(m_currentException);
if (!can_read())
return traits::eof();
if (!(m_currentException == nullptr)) std::rethrow_exception(m_currentException);
if (!can_read()) return traits::eof();
return check_sync_read_eof(_sbumpc());
}
@ -536,25 +536,22 @@ namespace streams
/// <returns>The value of the byte. EOF if the read fails.</returns>
virtual pplx::task<int_type> getc()
{
if (!can_read())
return create_exception_checked_value_task<int_type>(traits::eof());
if (!can_read()) return create_exception_checked_value_task<int_type>(traits::eof());
return create_exception_checked_task<int_type>(_getc(), [](int_type val) {
return val == streambuf_state_manager<_CharType>::traits::eof();
});
return create_exception_checked_task<int_type>(
_getc(), [](int_type val) { return val == streambuf_state_manager<_CharType>::traits::eof(); });
}
/// <summary>
/// Reads a single character from the stream without advancing the read position.
/// </summary>
/// <returns>The value of the character. EOF if the read fails. <see cref="::requires_async method" /> if an asynchronous read is required</returns>
/// <remarks>This is a synchronous operation, but is guaranteed to never block.</remarks>
/// <returns>The value of the character. EOF if the read fails. <see cref="::requires_async method" /> if an
/// asynchronous read is required</returns> <remarks>This is a synchronous operation, but is guaranteed to never
/// block.</remarks>
virtual int_type sgetc()
{
if ( !(m_currentException == nullptr) )
std::rethrow_exception(m_currentException);
if (!can_read())
return traits::eof();
if (!(m_currentException == nullptr)) std::rethrow_exception(m_currentException);
if (!can_read()) return traits::eof();
return check_sync_read_eof(_sgetc());
}
@ -564,26 +561,22 @@ namespace streams
/// <returns>The value of the character. EOF if the read fails.</returns>
virtual pplx::task<int_type> nextc()
{
if (!can_read())
return create_exception_checked_value_task<int_type>(traits::eof());
if (!can_read()) return create_exception_checked_value_task<int_type>(traits::eof());
return create_exception_checked_task<int_type>(_nextc(), [](int_type val) {
return val == streambuf_state_manager<_CharType>::traits::eof();
});
return create_exception_checked_task<int_type>(
_nextc(), [](int_type val) { return val == streambuf_state_manager<_CharType>::traits::eof(); });
}
/// <summary>
/// Retreats the read position, then returns the current character without advancing.
/// </summary>
/// <returns>The value of the character. EOF if the read fails. <see cref="::requires_async method" /> if an asynchronous read is required</returns>
/// <returns>The value of the character. EOF if the read fails. <see cref="::requires_async method" /> if an
/// asynchronous read is required</returns>
virtual pplx::task<int_type> ungetc()
{
if (!can_read())
return create_exception_checked_value_task<int_type>(traits::eof());
if (!can_read()) return create_exception_checked_value_task<int_type>(traits::eof());
return create_exception_checked_task<int_type>(_ungetc(), [](int_type) {
return false;
});
return create_exception_checked_task<int_type>(_ungetc(), [](int_type) { return false; });
}
/// <summary>
@ -594,14 +587,10 @@ namespace streams
/// <returns>The number of characters read. O if the end of the stream is reached.</returns>
virtual pplx::task<size_t> getn(_Out_writes_(count) _CharType* ptr, _In_ size_t count)
{
if (!can_read())
return create_exception_checked_value_task<size_t>(0);
if (count == 0)
return pplx::task_from_result<size_t>(0);
if (!can_read()) return create_exception_checked_value_task<size_t>(0);
if (count == 0) return pplx::task_from_result<size_t>(0);
return create_exception_checked_task<size_t>(_getn(ptr, count), [](size_t val) {
return val == 0;
});
return create_exception_checked_task<size_t>(_getn(ptr, count), [](size_t val) { return val == 0; });
}
/// <summary>
@ -609,14 +598,12 @@ namespace streams
/// </summary>
/// <param name="ptr">The address of the target memory area.</param>
/// <param name="count">The maximum number of characters to read.</param>
/// <returns>The number of characters copied. O if the end of the stream is reached or an asynchronous read is required.</returns>
/// <remarks>This is a synchronous operation, but is guaranteed to never block.</remarks>
/// <returns>The number of characters copied. O if the end of the stream is reached or an asynchronous read is
/// required.</returns> <remarks>This is a synchronous operation, but is guaranteed to never block.</remarks>
virtual size_t scopy(_Out_writes_(count) _CharType* ptr, _In_ size_t count)
{
if ( !(m_currentException == nullptr) )
std::rethrow_exception(m_currentException);
if (!can_read())
return 0;
if (!(m_currentException == nullptr)) std::rethrow_exception(m_currentException);
if (!can_read()) return 0;
return _scopy(ptr, count);
}
@ -634,35 +621,31 @@ namespace streams
else
return pplx::task_from_exception<void>(m_currentException);
}
return create_exception_checked_task<bool>(_sync(), [](bool) {
return false;
}).then([](bool){});
return create_exception_checked_task<bool>(_sync(), [](bool) { return false; }).then([](bool) {});
}
/// <summary>
/// Retrieves the stream buffer exception_ptr if it has been set.
/// </summary>
/// <returns>Pointer to the exception, if it has been set; otherwise, <c>nullptr</c> will be returned.</returns>
virtual std::exception_ptr exception() const
{
return m_currentException;
}
virtual std::exception_ptr exception() const { return m_currentException; }
/// <summary>
/// Allocates a contiguous memory block and returns it.
/// </summary>
/// <param name="count">The number of characters to allocate.</param>
/// <returns>A pointer to a block to write to, null if the stream buffer implementation does not support alloc/commit.</returns>
/// <remarks>This is intended as an advanced API to be used only when it is important to avoid extra copies.</remarks>
/// <returns>A pointer to a block to write to, null if the stream buffer implementation does not support
/// alloc/commit.</returns> <remarks>This is intended as an advanced API to be used only when it is important to
/// avoid extra copies.</remarks>
_CharType* alloc(size_t count)
{
if (m_alloced)
throw std::logic_error("The buffer is already allocated, this maybe caused by overlap of stream read or write");
throw std::logic_error(
"The buffer is already allocated, this maybe caused by overlap of stream read or write");
_CharType* alloc_result = _alloc(count);
if (alloc_result)
m_alloced = true;
if (alloc_result) m_alloced = true;
return alloc_result;
}
@ -671,11 +654,11 @@ namespace streams
/// Submits a block already allocated by the stream buffer.
/// </summary>
/// <param name="count">The number of characters to be committed.</param>
/// <remarks>This is intended as an advanced API to be used only when it is important to avoid extra copies.</remarks>
/// <remarks>This is intended as an advanced API to be used only when it is important to avoid extra
/// copies.</remarks>
void commit(size_t count)
{
if (!m_alloced)
throw std::logic_error("The buffer needs to allocate first");
if (!m_alloced) throw std::logic_error("The buffer needs to allocate first");
_commit(count);
m_alloced = false;
@ -693,6 +676,7 @@ namespace streams
virtual pos_type seekoff(off_type offset, std::ios_base::seekdir way, std::ios_base::openmode mode) = 0;
virtual bool acquire(_Out_writes_(count) _CharType*& ptr, _In_ size_t& count) = 0;
virtual void release(_Out_writes_(count) _CharType* ptr, _In_ size_t count) = 0;
protected:
virtual pplx::task<int_type> _putc(_CharType ch) = 0;
@ -745,8 +729,10 @@ namespace streams
std::exception_ptr m_currentException;
// The in/out mode for the buffer
bool m_stream_can_read, m_stream_can_write, m_stream_read_eof, m_alloced;
std::atomic<bool> m_stream_can_read;
std::atomic<bool> m_stream_can_write;
std::atomic<bool> m_stream_read_eof;
std::atomic<bool> m_alloced;
private:
template<typename _CharType1>
@ -760,14 +746,20 @@ namespace streams
// Set exception and eof states for async read
template<typename _CharType1>
pplx::task<_CharType1> create_exception_checked_task(pplx::task<_CharType1> result, std::function<bool(_CharType1)> eof_test, std::ios_base::openmode mode = std::ios_base::in | std::ios_base::out)
pplx::task<_CharType1> create_exception_checked_task(pplx::task<_CharType1> result,
std::function<bool(_CharType1)> eof_test,
std::ios_base::openmode mode = std::ios_base::in |
std::ios_base::out)
{
auto thisPointer = this->shared_from_this();
auto func1 = [=](pplx::task<_CharType1> t1) -> pplx::task<_CharType1> {
try {
try
{
thisPointer->m_stream_read_eof = eof_test(t1.get());
} catch (...) {
}
catch (...)
{
thisPointer->close(mode, std::current_exception()).get();
return pplx::task_from_exception<_CharType1>(thisPointer->exception(), pplx::task_options());
}
@ -793,14 +785,15 @@ namespace streams
m_stream_read_eof = ch == traits::eof();
return ch;
}
};
} // namespace details
// Forward declarations
template<typename _CharType> class basic_istream;
template<typename _CharType> class basic_ostream;
template<typename _CharType>
class basic_istream;
template<typename _CharType>
class basic_ostream;
/// <summary>
/// Reference-counted stream buffer.
@ -821,7 +814,8 @@ namespace streams
typedef typename details::basic_streambuf<_CharType>::off_type off_type;
typedef typename details::basic_streambuf<_CharType>::char_type char_type;
template <typename _CharType2> friend class streambuf;
template<typename _CharType2>
friend class streambuf;
/// <summary>
/// Constructor.
@ -842,15 +836,17 @@ namespace streams
/// </typeparam>
/// <param name="other">The source buffer to be converted.</param>
template<typename AlterCharType>
streambuf(const streambuf<AlterCharType> &other) :
m_buffer(std::static_pointer_cast<details::basic_streambuf<_CharType>>(std::static_pointer_cast<void>(other.m_buffer)))
streambuf(const streambuf<AlterCharType>& other)
: m_buffer(std::static_pointer_cast<details::basic_streambuf<_CharType>>(
std::static_pointer_cast<void>(other.m_buffer)))
{
static_assert(std::is_same<pos_type, typename details::basic_streambuf<AlterCharType>::pos_type>::value
&& std::is_same<off_type, typename details::basic_streambuf<AlterCharType>::off_type>::value
&& std::is_integral<_CharType>::value && std::is_integral<AlterCharType>::value
&& std::is_integral<int_type>::value && std::is_integral<typename details::basic_streambuf<AlterCharType>::int_type>::value
&& sizeof(_CharType) == sizeof(AlterCharType)
&& sizeof(int_type) == sizeof(typename details::basic_streambuf<AlterCharType>::int_type),
static_assert(std::is_same<pos_type, typename details::basic_streambuf<AlterCharType>::pos_type>::value &&
std::is_same<off_type, typename details::basic_streambuf<AlterCharType>::off_type>::value &&
std::is_integral<_CharType>::value && std::is_integral<AlterCharType>::value &&
std::is_integral<int_type>::value &&
std::is_integral<typename details::basic_streambuf<AlterCharType>::int_type>::value &&
sizeof(_CharType) == sizeof(AlterCharType) &&
sizeof(int_type) == sizeof(typename details::basic_streambuf<AlterCharType>::int_type),
"incompatible stream character types");
}
@ -917,8 +913,8 @@ namespace streams
virtual bool has_size() const { return get_base()->has_size(); }
/// <summary>
/// Gets the total number of characters in the stream buffer, if known. Calls to <c>has_size</c> will determine whether
/// the result of <c>size</c> can be relied on.
/// Gets the total number of characters in the stream buffer, if known. Calls to <c>has_size</c> will determine
/// whether the result of <c>size</c> can be relied on.
/// </summary>
/// <returns>The total number of characters in the stream buffer.</returns>
virtual utility::size64_t size() const { return get_base()->size(); }
@ -929,15 +925,23 @@ namespace streams
/// <param name="direction">The direction of buffering (in or out)</param>
/// <returns>The size of the internal buffer (for the given direction).</returns>
/// <remarks>An implementation that does not support buffering will always return 0.</remarks>
virtual size_t buffer_size(std::ios_base::openmode direction = std::ios_base::in) const { return get_base()->buffer_size(direction); }
virtual size_t buffer_size(std::ios_base::openmode direction = std::ios_base::in) const
{
return get_base()->buffer_size(direction);
}
/// <summary>
/// Sets the stream buffer implementation to buffer or not buffer.
/// </summary>
/// <param name="size">The size to use for internal buffering, 0 if no buffering should be done.</param>
/// <param name="direction">The direction of buffering (in or out)</param>
/// <remarks>An implementation that does not support buffering will silently ignore calls to this function and it will not have any effect on what is returned by subsequent calls to <see cref="::buffer_size method" />.</remarks>
virtual void set_buffer_size(size_t size, std::ios_base::openmode direction = std::ios_base::in) { get_base()->set_buffer_size(size,direction); }
/// <remarks>An implementation that does not support buffering will silently ignore calls to this function and it
/// will not have any effect on what is returned by subsequent calls to <see cref="::buffer_size method"
/// />.</remarks>
virtual void set_buffer_size(size_t size, std::ios_base::openmode direction = std::ios_base::in)
{
get_base()->set_buffer_size(size, direction);
}
/// <summary>
/// For any input stream, <c>in_avail</c> returns the number of characters that are immediately available
@ -988,35 +992,27 @@ namespace streams
/// </summary>
/// <param name="ch">The character to write</param>
/// <returns>The value of the character. EOF if the write operation fails</returns>
virtual pplx::task<int_type> putc(_CharType ch)
{
return get_base()->putc(ch);
}
virtual pplx::task<int_type> putc(_CharType ch) { return get_base()->putc(ch); }
/// <summary>
/// Allocates a contiguous memory block and returns it.
/// </summary>
/// <param name="count">The number of characters to allocate.</param>
/// <returns>A pointer to a block to write to, null if the stream buffer implementation does not support alloc/commit.</returns>
virtual _CharType* alloc(size_t count)
{
return get_base()->alloc(count);
}
/// <returns>A pointer to a block to write to, null if the stream buffer implementation does not support
/// alloc/commit.</returns>
virtual _CharType* alloc(size_t count) { return get_base()->alloc(count); }
/// <summary>
/// Submits a block already allocated by the stream buffer.
/// </summary>
/// <param name="count">The number of characters to be committed.</param>
virtual void commit(size_t count)
{
get_base()->commit(count);
}
virtual void commit(size_t count) { get_base()->commit(count); }
/// <summary>
/// Gets a pointer to the next already allocated contiguous block of data.
/// </summary>
/// <param name="ptr">A reference to a pointer variable that will hold the address of the block on success.</param>
/// <param name="count">The number of contiguous characters available at the address in 'ptr.'</param>
/// <param name="count">The number of contiguous characters available at the address in 'ptr'.</param>
/// <returns><c>true</c> if the operation succeeded, <c>false</c> otherwise.</returns>
/// <remarks>
/// A return of false does not necessarily indicate that a subsequent read operation would fail, only that
@ -1033,15 +1029,12 @@ namespace streams
}
/// <summary>
/// Releases a block of data acquired using <see cref="::acquire method"/>. This frees the stream buffer to de-allocate the
/// memory, if it so desires. Move the read position ahead by the count.
/// Releases a block of data acquired using <see cref="::acquire method"/>. This frees the stream buffer to
/// de-allocate the memory, if it so desires. Move the read position ahead by the count.
/// </summary>
/// <param name="ptr">A pointer to the block of data to be released.</param>
/// <param name="count">The number of characters that were read.</param>
virtual void release(_Out_writes_(count) _CharType *ptr, _In_ size_t count)
{
get_base()->release(ptr, count);
}
virtual void release(_Out_writes_(count) _CharType* ptr, _In_ size_t count) { get_base()->release(ptr, count); }
/// <summary>
/// Writes a number of characters to the stream.
@ -1049,11 +1042,9 @@ namespace streams
/// <param name="ptr">A pointer to the block of data to be written.</param>
/// <param name="count">The number of characters to write.</param>
/// <returns>The number of characters actually written, either 'count' or 0.</returns>
CASABLANCA_DEPRECATED("This API in some cases performs a copy. It is deprecated and will be removed in a future release. Use putn_nocopy instead.")
virtual pplx::task<size_t> putn(const _CharType *ptr, size_t count)
{
return get_base()->putn(ptr, count);
}
CASABLANCA_DEPRECATED("This API in some cases performs a copy. It is deprecated and will be removed in a future "
"release. Use putn_nocopy instead.")
virtual pplx::task<size_t> putn(const _CharType* ptr, size_t count) { return get_base()->putn(ptr, count); }
/// <summary>
/// Writes a number of characters to the stream. Note: callers must make sure the data to be written is valid until
@ -1071,57 +1062,41 @@ namespace streams
/// Reads a single character from the stream and advances the read position.
/// </summary>
/// <returns>The value of the character. EOF if the read fails.</returns>
virtual pplx::task<int_type> bumpc()
{
return get_base()->bumpc();
}
virtual pplx::task<int_type> bumpc() { return get_base()->bumpc(); }
/// <summary>
/// Reads a single character from the stream and advances the read position.
/// </summary>
/// <returns>The value of the character. <c>-1</c> if the read fails. <c>-2</c> if an asynchronous read is required</returns>
/// <remarks>This is a synchronous operation, but is guaranteed to never block.</remarks>
virtual typename details::basic_streambuf<_CharType>::int_type sbumpc()
{
return get_base()->sbumpc();
}
/// <returns>The value of the character. <c>-1</c> if the read fails. <c>-2</c> if an asynchronous read is
/// required</returns> <remarks>This is a synchronous operation, but is guaranteed to never block.</remarks>
virtual typename details::basic_streambuf<_CharType>::int_type sbumpc() { return get_base()->sbumpc(); }
/// <summary>
/// Reads a single character from the stream without advancing the read position.
/// </summary>
/// <returns>The value of the byte. EOF if the read fails.</returns>
virtual pplx::task<int_type> getc()
{
return get_base()->getc();
}
virtual pplx::task<int_type> getc() { return get_base()->getc(); }
/// <summary>
/// Reads a single character from the stream without advancing the read position.
/// </summary>
/// <returns>The value of the character. EOF if the read fails. <see cref="::requires_async method" /> if an asynchronous read is required</returns>
/// <remarks>This is a synchronous operation, but is guaranteed to never block.</remarks>
virtual typename details::basic_streambuf<_CharType>::int_type sgetc()
{
return get_base()->sgetc();
}
/// <returns>The value of the character. EOF if the read fails. <see cref="::requires_async method" /> if an
/// asynchronous read is required</returns> <remarks>This is a synchronous operation, but is guaranteed to never
/// block.</remarks>
virtual typename details::basic_streambuf<_CharType>::int_type sgetc() { return get_base()->sgetc(); }
/// <summary>
/// Advances the read position, then returns the next character without advancing again.
/// </summary>
/// <returns>The value of the character. EOF if the read fails.</returns>
pplx::task<int_type> nextc()
{
return get_base()->nextc();
}
pplx::task<int_type> nextc() { return get_base()->nextc(); }
/// <summary>
/// Retreats the read position, then returns the current character without advancing.
/// </summary>
/// <returns>The value of the character. EOF if the read fails. <see cref="::requires_async method" /> if an asynchronous read is required</returns>
pplx::task<int_type> ungetc()
{
return get_base()->ungetc();
}
/// <returns>The value of the character. EOF if the read fails. <see cref="::requires_async method" /> if an
/// asynchronous read is required</returns>
pplx::task<int_type> ungetc() { return get_base()->ungetc(); }
/// <summary>
/// Reads up to a given number of characters from the stream.
@ -1139,8 +1114,8 @@ namespace streams
/// </summary>
/// <param name="ptr">The address of the target memory area.</param>
/// <param name="count">The maximum number of characters to read.</param>
/// <returns>The number of characters copied. O if the end of the stream is reached or an asynchronous read is required.</returns>
/// <remarks>This is a synchronous operation, but is guaranteed to never block.</remarks>
/// <returns>The number of characters copied. O if the end of the stream is reached or an asynchronous read is
/// required.</returns> <remarks>This is a synchronous operation, but is guaranteed to never block.</remarks>
virtual size_t scopy(_Out_writes_(count) _CharType* ptr, _In_ size_t count)
{
return get_base()->scopy(ptr, count);
@ -1152,7 +1127,8 @@ namespace streams
/// <param name="direction">The I/O direction to seek (see remarks)</param>
/// <returns>The current position. EOF if the operation fails.</returns>
/// <remarks>Some streams may have separate write and read cursors.
/// For such streams, the direction parameter defines whether to move the read or the write cursor.</remarks>
/// For such streams, the direction parameter defines whether to move the read or the write
/// cursor.</remarks>
virtual typename details::basic_streambuf<_CharType>::pos_type getpos(std::ios_base::openmode direction) const
{
return get_base()->getpos(direction);
@ -1164,8 +1140,10 @@ namespace streams
/// <param name="pos">The offset from the beginning of the stream.</param>
/// <param name="direction">The I/O direction to seek (see remarks).</param>
/// <returns>The position. EOF if the operation fails.</returns>
/// <remarks>Some streams may have separate write and read cursors. For such streams, the direction parameter defines whether to move the read or the write cursor.</remarks>
virtual typename details::basic_streambuf<_CharType>::pos_type seekpos(typename details::basic_streambuf<_CharType>::pos_type pos, std::ios_base::openmode direction)
/// <remarks>Some streams may have separate write and read cursors. For such streams, the direction parameter
/// defines whether to move the read or the write cursor.</remarks>
virtual typename details::basic_streambuf<_CharType>::pos_type seekpos(
typename details::basic_streambuf<_CharType>::pos_type pos, std::ios_base::openmode direction)
{
return get_base()->seekpos(pos, direction);
}
@ -1179,7 +1157,10 @@ namespace streams
/// <returns>The position. EOF if the operation fails.</returns>
/// <remarks>Some streams may have separate write and read cursors.
/// For such streams, the mode parameter defines whether to move the read or the write cursor.</remarks>
virtual typename details::basic_streambuf<_CharType>::pos_type seekoff(typename details::basic_streambuf<_CharType>::off_type offset, std::ios_base::seekdir way, std::ios_base::openmode mode)
virtual typename details::basic_streambuf<_CharType>::pos_type seekoff(
typename details::basic_streambuf<_CharType>::off_type offset,
std::ios_base::seekdir way,
std::ios_base::openmode mode)
{
return get_base()->seekoff(offset, way, mode);
}
@ -1188,26 +1169,21 @@ namespace streams
/// For output streams, flush any internally buffered data to the underlying medium.
/// </summary>
/// <returns><c>true</c> if the flush succeeds, <c>false</c> if not</returns>
virtual pplx::task<void> sync()
{
return get_base()->sync();
}
virtual pplx::task<void> sync() { return get_base()->sync(); }
/// <summary>
/// Retrieves the stream buffer exception_ptr if it has been set.
/// </summary>
/// <returns>Pointer to the exception, if it has been set; otherwise, <c>nullptr</c> will be returned</returns>
virtual std::exception_ptr exception() const
{
return get_base()->exception();
}
virtual std::exception_ptr exception() const { return get_base()->exception(); }
private:
std::shared_ptr<details::basic_streambuf<_CharType>> m_buffer;
};
}}
} // namespace streams
} // namespace Concurrency
#if HC_PLATFORM_IS_MICROSOFT
#pragma warning( pop )
#endif

Просмотреть файл

@ -233,7 +233,7 @@ namespace details
_ASYNCRTIMP scoped_c_thread_locale();
_ASYNCRTIMP ~scoped_c_thread_locale();
#if !defined(ANDROID) && !defined(__ANDROID__) && !defined(__ORBIS__) && !defined(__PROSPERO__) // CodePlex 269
#if !defined(ANDROID) && !defined(__ANDROID__) && !defined(PAVO) // CodePlex 269
#ifdef _WIN32
typedef _locale_t xplat_locale;
#else
@ -246,7 +246,7 @@ namespace details
#ifdef _WIN32
std::string m_prevLocale;
int m_prevThreadSetting;
#elif !(defined(ANDROID) || defined(__ANDROID__) || defined(__ORBIS__) || defined(__PROSPERO__))
#elif !(defined(ANDROID) || defined(__ANDROID__) || defined(PAVO))
locale_t m_prevLocale;
#endif
scoped_c_thread_locale(const scoped_c_thread_locale &);

Просмотреть файл

@ -64,7 +64,7 @@ namespace utility
namespace details
{
#if !defined(ANDROID) && !defined(__ANDROID__) && !defined(__ORBIS__) && !defined(__PROSPERO__)
#if !defined(ANDROID) && !defined(__ANDROID__) && !defined(PAVO)
std::once_flag g_c_localeFlag;
std::unique_ptr<scoped_c_thread_locale::xplat_locale, void(*)(scoped_c_thread_locale::xplat_locale *)> g_c_locale(nullptr, [](scoped_c_thread_locale::xplat_locale *){});
scoped_c_thread_locale::xplat_locale scoped_c_thread_locale::c_locale()
@ -139,7 +139,7 @@ scoped_c_thread_locale::~scoped_c_thread_locale()
_configthreadlocale(m_prevThreadSetting);
}
}
#elif (defined(ANDROID) || defined(__ANDROID__) || defined(__ORBIS__) || defined(__PROSPERO__))
#elif (defined(ANDROID) || defined(__ANDROID__) || defined(PAVO))
scoped_c_thread_locale::scoped_c_thread_locale() {}
scoped_c_thread_locale::~scoped_c_thread_locale() {}
#else
@ -639,11 +639,11 @@ utility::string_t datetime::to_string(date_format format) const
time_t time = (time_t)input - (time_t)11644473600LL;// diff between windows and unix epochs (seconds)
struct tm datetime;
#if defined(__ORBIS__) || defined(__PROSPERO__)
#if defined(PAVO)
gmtime_s(&time, &datetime);
#else
gmtime_r(&time, &datetime);
#endif // __ORBIS__ || __PROSPERO__
#endif // PAVO
const int max_dt_length = 64;
char output[max_dt_length+1] = {0};

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -267,6 +267,10 @@ STDAPI XblAchievementsManagerGetAchievementsByState(
/// <remarks>
/// This API will work even when offline on PC and Xbox consoles. Offline updates will be
/// posted by the system when connection is re-established even if the title isn't running.
/// Note that in order for this API to work offline, the title must have previously
/// called <see cref="XblAchievementsManagerAddLocalUser"/> for the user while online otherwise this API
/// will return an error. If this is not desired, consider calling
/// <see cref="XblAchievementsUpdateAchievementAsync"/> if this API fails to handle 'offline during init' scenarios.
///
/// The result of the operation will not be represented locally immediately. The
/// earliest the update will be reflected will be after the next frame's call to

Просмотреть файл

@ -89,9 +89,6 @@ extern "C"
#define ANYSIZE_ARRAY 1
#endif
typedef long LONG;
typedef long LONG_PTR;
#ifndef FIELD_OFFSET
#define FIELD_OFFSET(type, field) ((long)(long)&(((type *)0)->field))
#endif

Просмотреть файл

@ -23,13 +23,12 @@ typedef struct XblUserProfile
uint64_t xboxUserId;
/// <summary>
/// The UTF-8 encoded user's display name to be used in application UI.
/// This value is privacy gated and could be a user's real name or their Gamertag.
/// Name for displaying in apps. This will always be the user's gamertag and identical to the gameDisplayName field.
/// </summary>
char appDisplayName[XBL_DISPLAY_NAME_CHAR_SIZE];
/// <summary>
/// UTF-8 encoded Uri for the user's display picture to be used in application UI.
/// UTF-8 encoded Uri for the user's gamer pic. This will always be identical to the gameDisplayPictureResizeUri field.
/// The Uri is a resizable Uri. It can be used to specify one of the following sizes and formats by appending &apos;&amp;format={format}&amp;w={width}&amp;h={height}:<br/>
/// Format: png<br/>
/// Width Height<br/>
@ -40,13 +39,12 @@ typedef struct XblUserProfile
char appDisplayPictureResizeUri[XBL_DISPLAY_PIC_URL_RAW_CHAR_SIZE];
/// <summary>
/// The UTF-8 encoded user's display name to be used in game UI.
/// This value is privacy gated and could be a user's real name or their Gamertag.
/// Name for displaying in games. This will always be the user's gamertag and identical to the appDisplayName field.
/// </summary>
char gameDisplayName[XBL_DISPLAY_NAME_CHAR_SIZE];
/// <summary>
/// UTF-8 encoded Uri for the user's display picture to be used in games.
/// UTF-8 encoded Uri for the user's gamer pic. This will always be identical to the appDisplayPictureResizeUri field.
/// The Uri is a resizable Uri. It can be used to specify one of the following sizes and formats by appending &apos;&amp;format={format}&amp;w={width}&amp;h={height}:<br/>
/// Format: png<br/>
/// Width Height<br/>
@ -62,24 +60,26 @@ typedef struct XblUserProfile
char gamerscore[XBL_GAMERSCORE_CHAR_SIZE];
/// <summary>
/// The UTF-8 encoded user's Gamertag.
/// The UTF-8 encoded user's classic gamertag.
/// This field only uses ASCII characters and does not include a suffix.
/// </summary>
char gamertag[XBL_GAMERTAG_CHAR_SIZE];
/// <summary>
/// The UTF-8 encoded modern gamertag for the user.
/// This field uses specific ranges of UTF-8 characters and does not include a suffix.
/// Not guaranteed to be unique.
/// </summary>
char modernGamertag[XBL_MODERN_GAMERTAG_CHAR_SIZE];
/// <summary>
/// The UTF-8 encoded suffix appended to modern gamertag to ensure uniqueness.
/// The UTF-8 encoded numeric suffix appended to modern gamertag to ensure uniqueness.
/// May be empty in some cases.
/// </summary>
char modernGamertagSuffix[XBL_MODERN_GAMERTAG_SUFFIX_CHAR_SIZE];
/// <summary>
/// The UTF-8 encoded unique modern gamertag and suffix.
/// The UTF-8 encoded unique modern gamertag and numeric suffix.
/// Format will be "modernGamertag#suffix".
/// Guaranteed to be no more than 16 rendered characters.
/// </summary>

Просмотреть файл

@ -40,7 +40,7 @@ extern "C"
#define XBL_RICH_PRESENCE_CHAR_SIZE (100 * 3)
#define XBL_TITLE_NAME_CHAR_SIZE (100 * 3)
#define XBL_XBOX_USER_ID_CHAR_SIZE (21 * 3)
#define XBL_LAST_TIME_PLAYED_CHAR_SIZE 25
#define XBL_LAST_TIME_PLAYED_CHAR_SIZE (25 * 3)
#define XBL_GUID_LENGTH 40
#define XBL_SCID_LENGTH XBL_GUID_LENGTH

Просмотреть файл

@ -21,8 +21,7 @@ namespace social {
{
public:
/// <summary>
/// The user's display name to be used in application UI. This value is privacy gated and could
/// be a user's real name or their Gamertag.
/// Name for displaying in apps. This will be the user's gamertag.
/// </summary>
inline string_t app_display_name() const;
@ -38,8 +37,7 @@ namespace social {
inline web::uri app_display_picture_resize_uri() const;
/// <summary>
/// The user's display name to be used in game UI. This value is privacy gated and could
/// be a user's real name or their Gamertag.
/// Name for displaying in games. This will be the user's gamertag.
/// </summary>
inline string_t game_display_name() const;

Просмотреть файл

@ -18,7 +18,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "APIRunner.GDK.Src", "Tests\
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ThunksGenerator", "Build\Microsoft.Xbox.Services.141.GDK.C.Thunks\generator\ThunksGenerator\ThunksGenerator.csproj", "{21C651D1-61D7-46C5-BD23-128E40329AA5}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libHttpClient.141.GDK.C", "External\xal\External\libHttpClient\Build\libHttpClient.141.GDK.C\libHttpClient.141.GDK.C.vcxproj", "{78C0122C-6B2D-4054-8C49-448277DD7A7D}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libHttpClient.GDK", "External\xal\External\libHttpClient\Build\libHttpClient.GDK\libHttpClient.GDK.vcxproj", "{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Props", "Props", "{901F04C7-6EC2-4641-90E7-54D2F72DF570}"
ProjectSection(SolutionItems) = preProject
@ -39,6 +39,16 @@ EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Common", "Common", "{81806275-2461-4CB7-935A-7EFEC3488A86}"
EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
Build\Microsoft.Xbox.Services.GDK\Microsoft.Xbox.Services.GDK.vcxitems*{1e320494-894e-4feb-90ca-df4fe20499f4}*SharedItemsImports = 9
Tests\APIExplorer\APIExplorer.Shared.vcxitems*{46f31a54-4c74-41a8-b294-26b5689e51ef}*SharedItemsImports = 4
Build\Microsoft.Xbox.Services.Common\Microsoft.Xbox.Services.Common.vcxitems*{60139f62-bf37-4f11-bd93-5fbf4e92100c}*SharedItemsImports = 4
Build\Microsoft.Xbox.Services.GDK\Microsoft.Xbox.Services.GDK.vcxitems*{60139f62-bf37-4f11-bd93-5fbf4e92100c}*SharedItemsImports = 4
External\xal\External\libHttpClient\Build\libHttpClient.Common\libHttpClient.Common.vcxitems*{a5a6e02a-21ba-4d55-9fb9-7b24dedd3743}*SharedItemsImports = 4
External\xal\External\libHttpClient\Build\libHttpClient.GDK.Shared\libHttpClient.GDK.Shared.vcxitems*{a5a6e02a-21ba-4d55-9fb9-7b24dedd3743}*SharedItemsImports = 4
Tests\APIExplorer\APIExplorer.Shared.vcxitems*{cbc0bec4-131d-4868-9345-71813557fb39}*SharedItemsImports = 9
Build\Microsoft.Xbox.Services.Common\Microsoft.Xbox.Services.Common.vcxitems*{cf3350e5-00a2-4647-a996-baf7542b0327}*SharedItemsImports = 9
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|ARM = Debug|ARM
@ -182,25 +192,24 @@ Global
{21C651D1-61D7-46C5-BD23-128E40329AA5}.Release|x64.Build.0 = Release|Any CPU
{21C651D1-61D7-46C5-BD23-128E40329AA5}.Release|x86.ActiveCfg = Release|Any CPU
{21C651D1-61D7-46C5-BD23-128E40329AA5}.Release|x86.Build.0 = Release|Any CPU
{78C0122C-6B2D-4054-8C49-448277DD7A7D}.Debug|Any CPU.ActiveCfg = Debug|Gaming.Desktop.x64
{78C0122C-6B2D-4054-8C49-448277DD7A7D}.Debug|ARM.ActiveCfg = Debug|Gaming.Desktop.x64
{78C0122C-6B2D-4054-8C49-448277DD7A7D}.Debug|ARM64.ActiveCfg = Debug|Gaming.Desktop.x64
{78C0122C-6B2D-4054-8C49-448277DD7A7D}.Debug|Gaming.Desktop.x64.ActiveCfg = Debug|Gaming.Desktop.x64
{78C0122C-6B2D-4054-8C49-448277DD7A7D}.Debug|Gaming.Desktop.x64.Build.0 = Debug|Gaming.Desktop.x64
{78C0122C-6B2D-4054-8C49-448277DD7A7D}.Debug|Gaming.Xbox.Scarlett.x64.ActiveCfg = Debug|Gaming.Desktop.x64
{78C0122C-6B2D-4054-8C49-448277DD7A7D}.Debug|Gaming.Xbox.XboxOne.x64.ActiveCfg = Debug|Gaming.Desktop.x64
{78C0122C-6B2D-4054-8C49-448277DD7A7D}.Debug|Gaming.Xbox.XboxOne.x64.Build.0 = Debug|Gaming.Desktop.x64
{78C0122C-6B2D-4054-8C49-448277DD7A7D}.Debug|x64.ActiveCfg = Debug|Gaming.Desktop.x64
{78C0122C-6B2D-4054-8C49-448277DD7A7D}.Debug|x86.ActiveCfg = Debug|Gaming.Desktop.x64
{78C0122C-6B2D-4054-8C49-448277DD7A7D}.Release|Any CPU.ActiveCfg = Release|Gaming.Desktop.x64
{78C0122C-6B2D-4054-8C49-448277DD7A7D}.Release|ARM.ActiveCfg = Release|Gaming.Desktop.x64
{78C0122C-6B2D-4054-8C49-448277DD7A7D}.Release|ARM64.ActiveCfg = Release|Gaming.Desktop.x64
{78C0122C-6B2D-4054-8C49-448277DD7A7D}.Release|Gaming.Desktop.x64.ActiveCfg = Release|Gaming.Desktop.x64
{78C0122C-6B2D-4054-8C49-448277DD7A7D}.Release|Gaming.Desktop.x64.Build.0 = Release|Gaming.Desktop.x64
{78C0122C-6B2D-4054-8C49-448277DD7A7D}.Release|Gaming.Xbox.Scarlett.x64.ActiveCfg = Release|Gaming.Desktop.x64
{78C0122C-6B2D-4054-8C49-448277DD7A7D}.Release|Gaming.Xbox.XboxOne.x64.ActiveCfg = Release|Gaming.Desktop.x64
{78C0122C-6B2D-4054-8C49-448277DD7A7D}.Release|x64.ActiveCfg = Release|Gaming.Desktop.x64
{78C0122C-6B2D-4054-8C49-448277DD7A7D}.Release|x86.ActiveCfg = Release|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Debug|Any CPU.ActiveCfg = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Debug|ARM.ActiveCfg = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Debug|ARM64.ActiveCfg = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Debug|Gaming.Desktop.x64.ActiveCfg = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Debug|Gaming.Desktop.x64.Build.0 = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Debug|Gaming.Xbox.Scarlett.x64.ActiveCfg = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Debug|Gaming.Xbox.XboxOne.x64.ActiveCfg = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Debug|x64.ActiveCfg = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Debug|x86.ActiveCfg = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Release|Any CPU.ActiveCfg = Release|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Release|ARM.ActiveCfg = Release|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Release|ARM64.ActiveCfg = Release|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Release|Gaming.Desktop.x64.ActiveCfg = Release|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Release|Gaming.Desktop.x64.Build.0 = Release|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Release|Gaming.Xbox.Scarlett.x64.ActiveCfg = Release|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Release|Gaming.Xbox.XboxOne.x64.ActiveCfg = Release|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Release|x64.ActiveCfg = Release|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Release|x86.ActiveCfg = Release|Gaming.Desktop.x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -209,25 +218,15 @@ Global
{CBC0BEC4-131D-4868-9345-71813557FB39} = {81806275-2461-4CB7-935A-7EFEC3488A86}
{DC381015-B171-4DA5-B7FA-7CDE8196C6D3} = {C9C47451-FCA6-4B7F-9BD0-20AD3B119737}
{60139F62-BF37-4F11-BD93-5FBF4E92100C} = {C9C47451-FCA6-4B7F-9BD0-20AD3B119737}
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743} = {C9C47451-FCA6-4B7F-9BD0-20AD3B119737}
{E538394B-68CB-4597-87AD-7B6841CC1278} = {C9C47451-FCA6-4B7F-9BD0-20AD3B119737}
{052C4858-C76F-4CEA-8A1A-E8E5559E67C2} = {DC381015-B171-4DA5-B7FA-7CDE8196C6D3}
{46F31A54-4C74-41A8-B294-26B5689E51EF} = {DC381015-B171-4DA5-B7FA-7CDE8196C6D3}
{21C651D1-61D7-46C5-BD23-128E40329AA5} = {C9C47451-FCA6-4B7F-9BD0-20AD3B119737}
{78C0122C-6B2D-4054-8C49-448277DD7A7D} = {C9C47451-FCA6-4B7F-9BD0-20AD3B119737}
{CF3350E5-00A2-4647-A996-BAF7542B0327} = {81806275-2461-4CB7-935A-7EFEC3488A86}
{1E320494-894E-4FEB-90CA-DF4FE20499F4} = {C9C47451-FCA6-4B7F-9BD0-20AD3B119737}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {622BB9B5-938F-41A2-BC8B-B7B3A64A73B5}
EndGlobalSection
GlobalSection(SharedMSBuildProjectFiles) = preSolution
Build\Microsoft.Xbox.Services.GDK\Microsoft.Xbox.Services.GDK.vcxitems*{1e320494-894e-4feb-90ca-df4fe20499f4}*SharedItemsImports = 9
Tests\APIExplorer\APIExplorer.Shared.vcxitems*{46f31a54-4c74-41a8-b294-26b5689e51ef}*SharedItemsImports = 4
Build\Microsoft.Xbox.Services.Common\Microsoft.Xbox.Services.Common.vcxitems*{60139f62-bf37-4f11-bd93-5fbf4e92100c}*SharedItemsImports = 4
Build\Microsoft.Xbox.Services.GDK\Microsoft.Xbox.Services.GDK.vcxitems*{60139f62-bf37-4f11-bd93-5fbf4e92100c}*SharedItemsImports = 4
External\xal\External\libHttpClient\Build\libHttpClient.Common\libHttpClient.Common.vcxitems*{78c0122c-6b2d-4054-8c49-448277dd7a7d}*SharedItemsImports = 4
External\xal\External\libHttpClient\Build\libHttpClient.GDK\libHttpClient.GDK.vcxitems*{78c0122c-6b2d-4054-8c49-448277dd7a7d}*SharedItemsImports = 4
Tests\APIExplorer\APIExplorer.Shared.vcxitems*{cbc0bec4-131d-4868-9345-71813557fb39}*SharedItemsImports = 9
Build\Microsoft.Xbox.Services.Common\Microsoft.Xbox.Services.Common.vcxitems*{cf3350e5-00a2-4647-a996-baf7542b0327}*SharedItemsImports = 9
EndGlobalSection
EndGlobal

Просмотреть файл

@ -7,7 +7,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "GDK", "GDK", "{165723E8-FF2
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Microsoft.Xbox.Services.142.GDK.C", "Build\Microsoft.Xbox.Services.142.GDK.C\Microsoft.Xbox.Services.142.GDK.C.vcxproj", "{60139F62-BF37-4F11-BD93-5FBF4E92100C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libHttpClient.142.GDK.C", "External\xal\External\libHttpClient\Build\libHttpClient.142.GDK.C\libHttpClient.142.GDK.C.vcxproj", "{66365E18-7B53-44BF-A348-6735058E359E}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libHttpClient.GDK", "External\xal\External\libHttpClient\Build\libHttpClient.GDK\libHttpClient.GDK.vcxproj", "{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Microsoft.Xbox.Services.GDK", "Build\Microsoft.Xbox.Services.GDK\Microsoft.Xbox.Services.GDK.vcxitems", "{1E320494-894E-4FEB-90CA-DF4FE20499F4}"
EndProject
@ -30,6 +30,14 @@ EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Microsoft.Xbox.Services.GDK.C.Thunks", "Build\Microsoft.Xbox.Services.GDK.C.Thunks\Microsoft.Xbox.Services.GDK.C.Thunks.vcxproj", "{6AA78AA9-78A5-40C0-828F-5933AF847111}"
EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
Build\Microsoft.Xbox.Services.GDK\Microsoft.Xbox.Services.GDK.vcxitems*{1e320494-894e-4feb-90ca-df4fe20499f4}*SharedItemsImports = 9
Build\Microsoft.Xbox.Services.Common\Microsoft.Xbox.Services.Common.vcxitems*{60139f62-bf37-4f11-bd93-5fbf4e92100c}*SharedItemsImports = 4
Build\Microsoft.Xbox.Services.GDK\Microsoft.Xbox.Services.GDK.vcxitems*{60139f62-bf37-4f11-bd93-5fbf4e92100c}*SharedItemsImports = 4
External\Xal\External\libHttpClient\Build\libHttpClient.Common\libHttpClient.Common.vcxitems*{a5a6e02a-21ba-4d55-9fb9-7b24dedd3743}*SharedItemsImports = 4
External\Xal\External\libHttpClient\Build\libHttpClient.GDK.Shared\libHttpClient.GDK.Shared.vcxitems*{a5a6e02a-21ba-4d55-9fb9-7b24dedd3743}*SharedItemsImports = 4
Build\Microsoft.Xbox.Services.Common\Microsoft.Xbox.Services.Common.vcxitems*{cf3350e5-00a2-4647-a996-baf7542b0327}*SharedItemsImports = 9
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Gaming.Desktop.x64 = Debug|Gaming.Desktop.x64
Debug|Gaming.Xbox.Scarlett.x64 = Debug|Gaming.Xbox.Scarlett.x64
@ -51,14 +59,14 @@ Global
{60139F62-BF37-4F11-BD93-5FBF4E92100C}.Release|Gaming.Xbox.Scarlett.x64.Build.0 = Release|Gaming.Desktop.x64
{60139F62-BF37-4F11-BD93-5FBF4E92100C}.Release|Gaming.Xbox.XboxOne.x64.ActiveCfg = Release|Gaming.Desktop.x64
{60139F62-BF37-4F11-BD93-5FBF4E92100C}.Release|Gaming.Xbox.XboxOne.x64.Build.0 = Release|Gaming.Desktop.x64
{66365E18-7B53-44BF-A348-6735058E359E}.Debug|Gaming.Desktop.x64.ActiveCfg = Debug|Gaming.Desktop.x64
{66365E18-7B53-44BF-A348-6735058E359E}.Debug|Gaming.Desktop.x64.Build.0 = Debug|Gaming.Desktop.x64
{66365E18-7B53-44BF-A348-6735058E359E}.Debug|Gaming.Xbox.Scarlett.x64.ActiveCfg = Debug|Gaming.Desktop.x64
{66365E18-7B53-44BF-A348-6735058E359E}.Debug|Gaming.Xbox.XboxOne.x64.ActiveCfg = Debug|Gaming.Desktop.x64
{66365E18-7B53-44BF-A348-6735058E359E}.Release|Gaming.Desktop.x64.ActiveCfg = Release|Gaming.Desktop.x64
{66365E18-7B53-44BF-A348-6735058E359E}.Release|Gaming.Desktop.x64.Build.0 = Release|Gaming.Desktop.x64
{66365E18-7B53-44BF-A348-6735058E359E}.Release|Gaming.Xbox.Scarlett.x64.ActiveCfg = Release|Gaming.Desktop.x64
{66365E18-7B53-44BF-A348-6735058E359E}.Release|Gaming.Xbox.XboxOne.x64.ActiveCfg = Release|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Debug|Gaming.Desktop.x64.ActiveCfg = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Debug|Gaming.Desktop.x64.Build.0 = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Debug|Gaming.Xbox.Scarlett.x64.ActiveCfg = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Debug|Gaming.Xbox.XboxOne.x64.ActiveCfg = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Release|Gaming.Desktop.x64.ActiveCfg = Release|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Release|Gaming.Desktop.x64.Build.0 = Release|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Release|Gaming.Xbox.Scarlett.x64.ActiveCfg = Release|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Release|Gaming.Xbox.XboxOne.x64.ActiveCfg = Release|Gaming.Desktop.x64
{6AA78AA9-78A5-40C0-828F-5933AF847111}.Debug|Gaming.Desktop.x64.ActiveCfg = Debug|Gaming.Desktop.x64
{6AA78AA9-78A5-40C0-828F-5933AF847111}.Debug|Gaming.Desktop.x64.Build.0 = Debug|Gaming.Desktop.x64
{6AA78AA9-78A5-40C0-828F-5933AF847111}.Debug|Gaming.Xbox.Scarlett.x64.ActiveCfg = Debug|Gaming.Desktop.x64
@ -77,7 +85,7 @@ Global
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{60139F62-BF37-4F11-BD93-5FBF4E92100C} = {165723E8-FF20-4427-A84B-68E05765C9AC}
{66365E18-7B53-44BF-A348-6735058E359E} = {165723E8-FF20-4427-A84B-68E05765C9AC}
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743} = {165723E8-FF20-4427-A84B-68E05765C9AC}
{1E320494-894E-4FEB-90CA-DF4FE20499F4} = {165723E8-FF20-4427-A84B-68E05765C9AC}
{CF3350E5-00A2-4647-A996-BAF7542B0327} = {8280F3FB-83FF-4351-A5F3-55E806F4D2D8}
{6AA78AA9-78A5-40C0-828F-5933AF847111} = {165723E8-FF20-4427-A84B-68E05765C9AC}
@ -85,12 +93,4 @@ Global
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {AB434E05-34C8-4B45-BE86-E363CCF8DD76}
EndGlobalSection
GlobalSection(SharedMSBuildProjectFiles) = preSolution
Build\Microsoft.Xbox.Services.GDK\Microsoft.Xbox.Services.GDK.vcxitems*{1e320494-894e-4feb-90ca-df4fe20499f4}*SharedItemsImports = 9
Build\Microsoft.Xbox.Services.Common\Microsoft.Xbox.Services.Common.vcxitems*{60139f62-bf37-4f11-bd93-5fbf4e92100c}*SharedItemsImports = 4
Build\Microsoft.Xbox.Services.GDK\Microsoft.Xbox.Services.GDK.vcxitems*{60139f62-bf37-4f11-bd93-5fbf4e92100c}*SharedItemsImports = 4
External\xal\External\libHttpClient\Build\libHttpClient.Common\libHttpClient.Common.vcxitems*{66365e18-7b53-44bf-a348-6735058e359e}*SharedItemsImports = 4
External\xal\External\libHttpClient\Build\libHttpClient.GDK\libHttpClient.GDK.vcxitems*{66365e18-7b53-44bf-a348-6735058e359e}*SharedItemsImports = 4
Build\Microsoft.Xbox.Services.Common\Microsoft.Xbox.Services.Common.vcxitems*{cf3350e5-00a2-4647-a996-baf7542b0327}*SharedItemsImports = 9
EndGlobalSection
EndGlobal

Просмотреть файл

@ -25,7 +25,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Props", "Props", "{E10FED00
xsapi.staticlib.props = xsapi.staticlib.props
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libHttpClient.143.GDK.C", "External\xal\External\libHttpClient\Build\libHttpClient.143.GDK.C\libHttpClient.143.GDK.C.vcxproj", "{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libHttpClient.GDK", "External\xal\External\libHttpClient\Build\libHttpClient.GDK\libHttpClient.GDK.vcxproj", "{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Microsoft.Xbox.Services.GDK", "Build\Microsoft.Xbox.Services.GDK\Microsoft.Xbox.Services.GDK.vcxitems", "{1E320494-894E-4FEB-90CA-DF4FE20499F4}"
EndProject
@ -174,54 +174,54 @@ Global
{46F31A54-4C74-41A8-B294-26B5689E51EF}.Release|Gaming.Xbox.XboxOne.x64.Deploy.0 = Release|Gaming.Xbox.XboxOne.x64
{46F31A54-4C74-41A8-B294-26B5689E51EF}.Release|x64.ActiveCfg = Release|Gaming.Xbox.Scarlett.x64
{46F31A54-4C74-41A8-B294-26B5689E51EF}.Release|x86.ActiveCfg = Release|Gaming.Xbox.Scarlett.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Debug|Any CPU.ActiveCfg = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Debug|Any CPU.Build.0 = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Debug|ARM.ActiveCfg = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Debug|ARM.Build.0 = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Debug|ARM64.ActiveCfg = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Debug|ARM64.Build.0 = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Debug|Gaming.Desktop.x64.ActiveCfg = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Debug|Gaming.Desktop.x64.Build.0 = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Debug|Gaming.Xbox.Scarlett.x64.ActiveCfg = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Debug|Gaming.Xbox.Scarlett.x64.Build.0 = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Debug|Gaming.Xbox.XboxOne.x64.ActiveCfg = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Debug|Gaming.Xbox.XboxOne.x64.Build.0 = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Debug|x64.ActiveCfg = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Debug|x64.Build.0 = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Debug|x86.ActiveCfg = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Debug|x86.Build.0 = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Profile|Any CPU.ActiveCfg = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Profile|Any CPU.Build.0 = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Profile|ARM.ActiveCfg = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Profile|ARM.Build.0 = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Profile|ARM64.ActiveCfg = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Profile|ARM64.Build.0 = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Profile|Gaming.Desktop.x64.ActiveCfg = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Profile|Gaming.Desktop.x64.Build.0 = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Profile|Gaming.Xbox.Scarlett.x64.ActiveCfg = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Profile|Gaming.Xbox.Scarlett.x64.Build.0 = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Profile|Gaming.Xbox.XboxOne.x64.ActiveCfg = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Profile|Gaming.Xbox.XboxOne.x64.Build.0 = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Profile|x64.ActiveCfg = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Profile|x64.Build.0 = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Profile|x86.ActiveCfg = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Profile|x86.Build.0 = Debug|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Release|Any CPU.ActiveCfg = Release|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Release|Any CPU.Build.0 = Release|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Release|ARM.ActiveCfg = Release|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Release|ARM.Build.0 = Release|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Release|ARM64.ActiveCfg = Release|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Release|ARM64.Build.0 = Release|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Release|Gaming.Desktop.x64.ActiveCfg = Release|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Release|Gaming.Desktop.x64.Build.0 = Release|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Release|Gaming.Xbox.Scarlett.x64.ActiveCfg = Release|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Release|Gaming.Xbox.Scarlett.x64.Build.0 = Release|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Release|Gaming.Xbox.XboxOne.x64.ActiveCfg = Release|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Release|Gaming.Xbox.XboxOne.x64.Build.0 = Release|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Release|x64.ActiveCfg = Release|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Release|x64.Build.0 = Release|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Release|x86.ActiveCfg = Release|Gaming.Desktop.x64
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C}.Release|x86.Build.0 = Release|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Debug|Any CPU.ActiveCfg = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Debug|Any CPU.Build.0 = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Debug|ARM.ActiveCfg = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Debug|ARM.Build.0 = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Debug|ARM64.ActiveCfg = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Debug|ARM64.Build.0 = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Debug|Gaming.Desktop.x64.ActiveCfg = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Debug|Gaming.Desktop.x64.Build.0 = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Debug|Gaming.Xbox.Scarlett.x64.ActiveCfg = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Debug|Gaming.Xbox.Scarlett.x64.Build.0 = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Debug|Gaming.Xbox.XboxOne.x64.ActiveCfg = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Debug|Gaming.Xbox.XboxOne.x64.Build.0 = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Debug|x64.ActiveCfg = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Debug|x64.Build.0 = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Debug|x86.ActiveCfg = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Debug|x86.Build.0 = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Profile|Any CPU.ActiveCfg = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Profile|Any CPU.Build.0 = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Profile|ARM.ActiveCfg = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Profile|ARM.Build.0 = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Profile|ARM64.ActiveCfg = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Profile|ARM64.Build.0 = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Profile|Gaming.Desktop.x64.ActiveCfg = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Profile|Gaming.Desktop.x64.Build.0 = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Profile|Gaming.Xbox.Scarlett.x64.ActiveCfg = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Profile|Gaming.Xbox.Scarlett.x64.Build.0 = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Profile|Gaming.Xbox.XboxOne.x64.ActiveCfg = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Profile|Gaming.Xbox.XboxOne.x64.Build.0 = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Profile|x64.ActiveCfg = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Profile|x64.Build.0 = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Profile|x86.ActiveCfg = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Profile|x86.Build.0 = Debug|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Release|Any CPU.ActiveCfg = Release|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Release|Any CPU.Build.0 = Release|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Release|ARM.ActiveCfg = Release|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Release|ARM.Build.0 = Release|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Release|ARM64.ActiveCfg = Release|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Release|ARM64.Build.0 = Release|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Release|Gaming.Desktop.x64.ActiveCfg = Release|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Release|Gaming.Desktop.x64.Build.0 = Release|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Release|Gaming.Xbox.Scarlett.x64.ActiveCfg = Release|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Release|Gaming.Xbox.Scarlett.x64.Build.0 = Release|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Release|Gaming.Xbox.XboxOne.x64.ActiveCfg = Release|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Release|Gaming.Xbox.XboxOne.x64.Build.0 = Release|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Release|x64.ActiveCfg = Release|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Release|x64.Build.0 = Release|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Release|x86.ActiveCfg = Release|Gaming.Desktop.x64
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743}.Release|x86.Build.0 = Release|Gaming.Desktop.x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -232,7 +232,7 @@ Global
{60139F62-BF37-4F11-BD93-5FBF4E92100C} = {C9C47451-FCA6-4B7F-9BD0-20AD3B119737}
{052C4858-C76F-4CEA-8A1A-E8E5559E67C2} = {DC381015-B171-4DA5-B7FA-7CDE8196C6D3}
{46F31A54-4C74-41A8-B294-26B5689E51EF} = {DC381015-B171-4DA5-B7FA-7CDE8196C6D3}
{0A6D51A3-0D86-4D0E-9DAA-54BA75E1DA1C} = {C9C47451-FCA6-4B7F-9BD0-20AD3B119737}
{A5A6E02A-21BA-4D55-9FB9-7B24DEDD3743} = {C9C47451-FCA6-4B7F-9BD0-20AD3B119737}
{1E320494-894E-4FEB-90CA-DF4FE20499F4} = {C9C47451-FCA6-4B7F-9BD0-20AD3B119737}
{CF3350E5-00A2-4647-A996-BAF7542B0327} = {E4213904-77D5-4847-B858-0938BF96064C}
EndGlobalSection
@ -240,12 +240,12 @@ Global
SolutionGuid = {622BB9B5-938F-41A2-BC8B-B7B3A64A73B5}
EndGlobalSection
GlobalSection(SharedMSBuildProjectFiles) = preSolution
External\Xal\External\libHttpClient\Build\libHttpClient.Common\libHttpClient.Common.vcxitems*{0a6d51a3-0d86-4d0e-9daa-54ba75e1da1c}*SharedItemsImports = 4
External\Xal\External\libHttpClient\Build\libHttpClient.GDK\libHttpClient.GDK.vcxitems*{0a6d51a3-0d86-4d0e-9daa-54ba75e1da1c}*SharedItemsImports = 4
Build\Microsoft.Xbox.Services.GDK\Microsoft.Xbox.Services.GDK.vcxitems*{1e320494-894e-4feb-90ca-df4fe20499f4}*SharedItemsImports = 9
Tests\APIExplorer\APIExplorer.Shared.vcxitems*{46f31a54-4c74-41a8-b294-26b5689e51ef}*SharedItemsImports = 4
Build\Microsoft.Xbox.Services.Common\Microsoft.Xbox.Services.Common.vcxitems*{60139f62-bf37-4f11-bd93-5fbf4e92100c}*SharedItemsImports = 4
Build\Microsoft.Xbox.Services.GDK\Microsoft.Xbox.Services.GDK.vcxitems*{60139f62-bf37-4f11-bd93-5fbf4e92100c}*SharedItemsImports = 4
External\Xal\External\libHttpClient\Build\libHttpClient.Common\libHttpClient.Common.vcxitems*{a5a6e02a-21ba-4d55-9fb9-7b24dedd3743}*SharedItemsImports = 4
External\Xal\External\libHttpClient\Build\libHttpClient.GDK.Shared\libHttpClient.GDK.Shared.vcxitems*{a5a6e02a-21ba-4d55-9fb9-7b24dedd3743}*SharedItemsImports = 4
Tests\APIExplorer\APIExplorer.Shared.vcxitems*{cbc0bec4-131d-4868-9345-71813557fb39}*SharedItemsImports = 9
Build\Microsoft.Xbox.Services.Common\Microsoft.Xbox.Services.Common.vcxitems*{cf3350e5-00a2-4647-a996-baf7542b0327}*SharedItemsImports = 9
EndGlobalSection

Просмотреть файл

@ -2,9 +2,3 @@
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
#include "pch.h"
#if !_LINK_WITH_CPPRESTSDK && HC_PLATFORM != HC_PLATFORM_GDK
#include "cpprestsdk_impl.h"
#endif
#include <rapidjson/allocators.hpp>
#include "uri_impl.h"

Просмотреть файл

@ -74,6 +74,8 @@ HRESULT RTANotificationService::RegisterWithNotificationService(
"Win32",
#elif HC_PLATFORM == HC_PLATFORM_NINTENDO_SWITCH
"NintendoSwitch",
#elif HC_PLATFORM_IS_PLAYSTATION
"PlayStation",
#endif
};

Просмотреть файл

@ -425,7 +425,6 @@ void Connection::SubscribeResponseHandler(_In_ const JsonValue& message) noexcep
if (subIter == m_subsByClientId.end())
{
// Ignore unexpected message
assert(false);
LOGS_DEBUG << "__FUNCTION__" << ": [" << clientId << "] Ignoring unexpected message";
return;
}

Просмотреть файл

@ -232,7 +232,7 @@ namespace details
_ASYNCRTIMP scoped_c_thread_locale();
_ASYNCRTIMP ~scoped_c_thread_locale();
#if !defined(ANDROID) && !defined(__ANDROID__) && !defined(__ORBIS__) && !defined(__PROSPERO__) // CodePlex 269
#if !defined(ANDROID) && !defined(__ANDROID__) && !defined(PAVO) // CodePlex 269
#ifdef _WIN32
typedef _locale_t xplat_locale;
#else
@ -245,7 +245,7 @@ namespace details
#ifdef _WIN32
std::string m_prevLocale;
int m_prevThreadSetting;
#elif !(defined(ANDROID) || defined(__ANDROID__) || defined(__ORBIS__) || defined(__PROSPERO__))
#elif !(defined(ANDROID) || defined(__ANDROID__) || defined(PAVO))
locale_t m_prevLocale;
#endif
scoped_c_thread_locale(const scoped_c_thread_locale &);

Просмотреть файл

@ -65,7 +65,7 @@ namespace utility
namespace details
{
#if !defined(ANDROID) && !defined(__ANDROID__) && !defined(__ORBIS__) && !defined(__PROSPERO__)
#if !defined(ANDROID) && !defined(__ANDROID__) && !defined(PAVO)
std::once_flag g_c_localeFlag;
std::unique_ptr<scoped_c_thread_locale::xplat_locale, void(*)(scoped_c_thread_locale::xplat_locale *)> g_c_locale(nullptr, [](scoped_c_thread_locale::xplat_locale *){});
scoped_c_thread_locale::xplat_locale scoped_c_thread_locale::c_locale()
@ -140,7 +140,7 @@ scoped_c_thread_locale::~scoped_c_thread_locale()
_configthreadlocale(m_prevThreadSetting);
}
}
#elif (defined(ANDROID) || defined(__ANDROID__) || defined(__ORBIS__) || defined(__PROSPERO__))
#elif (defined(ANDROID) || defined(__ANDROID__) || defined(PAVO))
scoped_c_thread_locale::scoped_c_thread_locale() {}
scoped_c_thread_locale::~scoped_c_thread_locale() {}
#else
@ -707,11 +707,11 @@ xsapi_internal_string datetime::to_string_internal(date_format format) const
time_t time = (time_t)input - (time_t)11644473600LL;// diff between windows and unix epochs (seconds)
struct tm datetime;
#if defined(__ORBIS__) || defined(__PROSPERO__)
#if defined(PAVO)
gmtime_s(&time, &datetime);
#else
gmtime_r(&time, &datetime);
#endif // __ORBIS__ || __PROSPERO__
#endif // PAVO
const int max_dt_length = 64;
char output[max_dt_length+1] = {0};

Просмотреть файл

@ -9,4 +9,4 @@
//*********************************************************
#pragma once
#define XBOX_SERVICES_API_VERSION_STRING "2023.10.20230922.0"
#define XBOX_SERVICES_API_VERSION_STRING "2024.06.20240521.0"

Просмотреть файл

@ -415,11 +415,11 @@ namespace detail
time_t time = (time_t)input - (time_t)11644473600LL;// diff between windows and unix epochs (seconds)
struct tm datetime;
#if defined(__ORBIS__) || defined(__PROSPERO__)
#if defined(PAVO)
gmtime_s(&time, &datetime);
#else
gmtime_r(&time, &datetime);
#endif // __ORBIS__ || __PROSPERO__
#endif // PAVO
const int max_dt_length = 64;
char output[max_dt_length + 1] = { 0 };

Просмотреть файл

@ -2,6 +2,7 @@
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
#include "pch.h"
#include <rapidjson/allocators.hpp>
NAMESPACE_MICROSOFT_XBOX_SERVICES_CPP_BEGIN

Просмотреть файл

@ -1,5 +1,6 @@
#include "pch.h"
#include "xsapi_json_utils.h"
#include "uri_impl.h"
using namespace xbox::services::legacy;
@ -191,8 +192,14 @@ HRESULT JsonUtils::ExtractJsonStringToCharArray(
{
xsapi_internal_string jsonStr;
RETURN_HR_IF_FAILED(ExtractJsonString(jsonValue, stringName, jsonStr));
if (jsonStr.size() < size)
{
utils::strcpy(charArray, size, jsonStr.data());
}
else
{
return E_INVALIDARG;
}
return S_OK;
}

Просмотреть файл

@ -22,6 +22,10 @@
#include "Logger/log_hc_output.h"
#include "global_state.h"
#if !_LINK_WITH_CPPRESTSDK && HC_PLATFORM != HC_PLATFORM_GDK
#include "cpprestsdk_impl.h"
#endif
#ifndef _XTIME_TICKS_PER_TIME_T
#define _XTIME_TICKS_PER_TIME_T 10000000LL
#endif
@ -195,11 +199,11 @@ xsapi_internal_string utils::convert_timepoint_to_string(
time.tm_year + 1900, time.tm_mon + 1, time.tm_mday,
time.tm_hour, time.tm_min, time.tm_sec, static_cast<int>(ms.count() % 1000));
#else
#if defined(__ORBIS__) || defined(__PROSPERO__)
#if defined(PAVO)
std::tm* error = localtime_s(&t, &time);
#else
std::tm* error = localtime_r(&t, &time);
#endif // __ORBIS__ || __PROSPERO__
#endif // PAVO
if (error == nullptr)
{
return result;

Просмотреть файл

@ -305,6 +305,7 @@
<None Include="$(MSBuildThisFileDirectory)Tests\libHttp\httpPerform.lua">
<DeploymentContent>true</DeploymentContent>
</None>
<None Include="$(MSBuildThisFileDirectory)Tests\libHttp\libHCTrace.lua" />
<None Include="$(MSBuildThisFileDirectory)Tests\libHttp\manualDispatchTest.lua">
<DeploymentContent>true</DeploymentContent>
</None>

Просмотреть файл

@ -825,5 +825,8 @@
<None Include="$(MSBuildThisFileDirectory)Tests\mp\mp_multiple_contexts.lua">
<Filter>Tests\mp</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)Tests\libHttp\libHCTrace.lua">
<Filter>Tests\libHttp</Filter>
</None>
</ItemGroup>
</Project>

Просмотреть файл

@ -68,6 +68,29 @@ int HCGetLibVersion_Lua(lua_State *L)
return LuaReturnHR(L, hr);
}
int HCTrace_Lua(lua_State* L)
{
LogToFile("HCTrace: testing small message");
HCTraceImplArea apiExplorerArea{ "ApiExplorer", HCTraceLevel::Important };
HCTraceImplMessage(&apiExplorerArea, apiExplorerArea.Verbosity, "testing small message");
LogToFile("HCTrace: succeeded with small message");
return LuaReturnHR(L, S_OK);
}
int HCTraceLarge_Lua(lua_State* L)
{
LogToFile("HCTraceLarge: testing large message");
HCTraceImplArea apiExplorerArea{ "ApiExplorer", HCTraceLevel::Important };
std::vector<char> largeMessage(8192, 'w');
HCTraceImplMessage(&apiExplorerArea, apiExplorerArea.Verbosity, largeMessage.data());
LogToFile("HCTraceLarge: succeeded with large message");
return LuaReturnHR(L, S_OK);
}
int HCHttpCallCreate_Lua(lua_State *L)
{
// CODE SNIPPET START: HCHttpCallCreate
@ -596,6 +619,8 @@ void SetupAPIs_LibHttp()
lua_register(Data()->L, "HCCleanup", HCCleanup_Lua);
lua_register(Data()->L, "HCCleanupAsync", HCCleanupAsync_Lua);
lua_register(Data()->L, "HCGetLibVersion", HCGetLibVersion_Lua);
lua_register(Data()->L, "HCTrace", HCTrace_Lua);
lua_register(Data()->L, "HCTraceLarge", HCTraceLarge_Lua);
//lua_register(Data()->L, "HCAddCallRoutedHandler", HCAddCallRoutedHandler_Lua);
//lua_register(Data()->L, "HCRemoveCallRoutedHandler", HCRemoveCallRoutedHandler_Lua);
lua_register(Data()->L, "HCHttpCallCreate", HCHttpCallCreate_Lua);

Просмотреть файл

@ -0,0 +1,17 @@
test = require 'u-test'
common = require 'common'
test.testlibHCTrace = function()
print("test LHC trace")
HCInitialize();
HCTrace();
HCTraceLarge();
HCCleanup();
test.stopTest();
end

Просмотреть файл

@ -0,0 +1 @@
C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(839,5): error : The BaseOutputPath/OutputPath property is not set for project 'APIRunner.143.GDK.Src.vcxproj'. Please check to make sure that you have specified a valid combination of Configuration and Platform for this project. Configuration='Debug' Platform='Gaming.Desktop.x64'. This error may also appear if some other project is trying to follow a project-to-project reference to this project, this project has been unloaded or is not included in the solution, and the referencing project does not build using the same or an equivalent Configuration or Platform.

Просмотреть файл

@ -109,7 +109,6 @@
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Gaming.Desktop.x64'" Label="Configuration">

Просмотреть файл

@ -150,7 +150,7 @@
<PropertyGroup>
<HCPlatform Condition="'$(XsapiPlatform)' == 'DesktopBridge'">HC_PLATFORM_WIN32</HCPlatform>
</PropertyGroup>
<Import Project="$(XsapiRoot)External\xal\External\libHttpClient\libHttpClient.props" />
<Import Project="$(XsapiRoot)External\xal\External\libHttpClient\Build\libHttpClient.import.props" />
<!--CompactCoreCLL dependency-->
<PropertyGroup Condition="'$(XsapiCllRefs)' == 'true'">
@ -175,7 +175,7 @@
<!--Xal dependency-->
<PropertyGroup Condition="'$(XsapiXalHeaders)' == 'true'">
<XalRoot>$(XsapiRoot)External\xal\</XalRoot>
<XalPlatform>$(HCLibPlatformType)</XalPlatform>
<XalPlatform>$(HCPlatform)</XalPlatform>
<XalInclude>$(XalRoot)source\Xal\include\</XalInclude>
<XalExtraInclude>$(XalRoot)source\XalExtra\include\</XalExtraInclude>
</PropertyGroup>
@ -231,7 +231,7 @@
<Message Importance="High" Text=" CppRestSdkInclude = '$(CppRestSdkInclude)'" />
<Message Importance="High" Text=" CppRestSdkRoot = '$(CppRestSdkRoot)'" />
<Message Importance="High" Text=" VisualStudioMajorVersion = '$(VisualStudioMajorVersion)'" />
<Message Importance="High" Text=" HCLibPlatformType = '$(HCLibPlatformType)'" />
<Message Importance="High" Text=" HCPlatform = '$(HCPlatform)'" />
<Message Importance="High" Text=" XalRoot = '$(XalRoot)'" />
<Message Importance="High" Text=" XalPlatform = '$(XalPlatform)'" />
<Message Importance="High" Text=" XalInclude = '$(XalInclude)'" />