// C++/WinRT v2.0.250303.1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. #pragma once #ifndef WINRT_Windows_AI_Agents_Mcp_0_H #define WINRT_Windows_AI_Agents_Mcp_0_H WINRT_EXPORT namespace winrt::Windows::AI::Agents::Mcp { enum class McpMessageDirection : int32_t { ClientToServer = 0, ServerToClient = 1, }; struct IMcpMessageFilterExperimental; struct IMcpMessageFilterResponse; struct IMcpMessageFilterResponseExperimental; struct IMcpMessageFilterResponseExperimental2; struct McpMessageFilterResponse; } namespace winrt::impl { template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = enum_category; }; template <> inline constexpr auto& name_v = L"Windows.AI.Agents.Mcp.McpMessageFilterResponse"; template <> inline constexpr auto& name_v = L"Windows.AI.Agents.Mcp.McpMessageDirection"; template <> inline constexpr auto& name_v = L"Windows.AI.Agents.Mcp.IMcpMessageFilterExperimental"; template <> inline constexpr auto& name_v = L"Windows.AI.Agents.Mcp.IMcpMessageFilterResponse"; template <> inline constexpr auto& name_v = L"Windows.AI.Agents.Mcp.IMcpMessageFilterResponseExperimental"; template <> inline constexpr auto& name_v = L"Windows.AI.Agents.Mcp.IMcpMessageFilterResponseExperimental2"; template <> inline constexpr guid guid_v{ 0xC5F8F821,0x895C,0x5241,{ 0xB4,0x5A,0x92,0xE2,0x49,0xA7,0xD8,0x73 } }; // C5F8F821-895C-5241-B45A-92E249A7D873 template <> inline constexpr guid guid_v{ 0x363CE02C,0x7098,0x5E13,{ 0xA4,0x08,0x7B,0x43,0xE1,0xF4,0x52,0xAC } }; // 363CE02C-7098-5E13-A408-7B43E1F452AC template <> inline constexpr guid guid_v{ 0xE215B5F2,0xCB02,0x56CF,{ 0xAA,0xB0,0x84,0xAE,0xF6,0x5D,0x16,0x65 } }; // E215B5F2-CB02-56CF-AAB0-84AEF65D1665 template <> inline constexpr guid guid_v{ 0x10F4B099,0x6632,0x505A,{ 0xA6,0x38,0xE7,0x04,0xC7,0xE4,0x7A,0xBF } }; // 10F4B099-6632-505A-A638-E704C7E47ABF template <> struct default_interface{ using type = winrt::Windows::AI::Agents::Mcp::IMcpMessageFilterResponse; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall Initialize(void*, uint32_t, void*, void*, uint32_t) noexcept = 0; virtual int32_t __stdcall OnMessage(void*, int32_t, void*) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_IsAllowed(bool*) noexcept = 0; virtual int32_t __stdcall put_IsAllowed(bool) noexcept = 0; virtual int32_t __stdcall get_MessageIfNotAllowed(void**) noexcept = 0; virtual int32_t __stdcall put_MessageIfNotAllowed(void*) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall Allow() noexcept = 0; virtual int32_t __stdcall Reject(void*) noexcept = 0; }; }; template struct consume_Windows_AI_Agents_Mcp_IMcpMessageFilterExperimental { auto Initialize(param::hstring const& clientAppUserModelId, uint32_t clientProcessId, param::hstring const& serverIdentity, param::hstring const& serverName, uint32_t serverProcessId) const; auto OnMessage(param::hstring const& message, winrt::Windows::AI::Agents::Mcp::McpMessageDirection const& direction, winrt::Windows::AI::Agents::Mcp::McpMessageFilterResponse const& filterResponse) const; }; template <> struct consume { template using type = consume_Windows_AI_Agents_Mcp_IMcpMessageFilterExperimental; }; template struct consume_Windows_AI_Agents_Mcp_IMcpMessageFilterResponse { }; template <> struct consume { template using type = consume_Windows_AI_Agents_Mcp_IMcpMessageFilterResponse; }; template struct consume_Windows_AI_Agents_Mcp_IMcpMessageFilterResponseExperimental { [[nodiscard]] auto IsAllowed() const; auto IsAllowed(bool value) const; [[nodiscard]] auto MessageIfNotAllowed() const; auto MessageIfNotAllowed(param::hstring const& value) const; }; template <> struct consume { template using type = consume_Windows_AI_Agents_Mcp_IMcpMessageFilterResponseExperimental; }; template struct consume_Windows_AI_Agents_Mcp_IMcpMessageFilterResponseExperimental2 { auto Allow() const; auto Reject(param::hstring const& reason) const; }; template <> struct consume { template using type = consume_Windows_AI_Agents_Mcp_IMcpMessageFilterResponseExperimental2; }; } #endif