text: // WARNING: Please don't edit this file. It was generated by C++/WinRT v2.0.200615.7
  
  #ifndef WINRT_Windows_Services_Cortana_0_H
  #define WINRT_Windows_Services_Cortana_0_H
  WINRT_EXPORT namespace winrt::Windows::ApplicationModel::DataTransfer
  {
      struct DataPackage;
  }
  WINRT_EXPORT namespace winrt::Windows::Foundation
  {
      struct IAsyncAction;
      template <typename TResult> struct __declspec(empty_bases) IAsyncOperation;
      struct Uri;
  }
  WINRT_EXPORT namespace winrt::Windows::Foundation::Collections
  {
      template <typename T> struct __declspec(empty_bases) IIterable;
  }
  WINRT_EXPORT namespace winrt::Windows::Storage::Streams
  {
      struct IRandomAccessStreamReference;
  }
  WINRT_EXPORT namespace winrt::Windows::System
  {
      struct User;
  }
  WINRT_EXPORT namespace winrt::Windows::Services::Cortana
  {
      enum class CortanaPermission : int32_t
      {
          BrowsingHistory = 0,
          Calendar = 1,
          CallHistory = 2,
          Contacts = 3,
          Email = 4,
          InputPersonalization = 5,
          Location = 6,
          Messaging = 7,
          Microphone = 8,
          Personalization = 9,
          PhoneCall = 10,
      };
      enum class CortanaPermissionsChangeResult : int32_t
      {
          Success = 0,
          Unavailable = 1,
          DisabledByPolicy = 2,
      };
      struct ICortanaActionableInsights;
      struct ICortanaActionableInsightsOptions;
      struct ICortanaActionableInsightsStatics;
      struct ICortanaPermissionsManager;
      struct ICortanaPermissionsManagerStatics;
      struct ICortanaSettings;
      struct ICortanaSettingsStatics;
      struct CortanaActionableInsights;
      struct CortanaActionableInsightsOptions;
      struct CortanaPermissionsManager;
      struct CortanaSettings;
  }
  namespace winrt::impl
  {
      template <> struct category<Windows::Services::Cortana::ICortanaActionableInsights>{ using type = interface_category; };
      template <> struct category<Windows::Services::Cortana::ICortanaActionableInsightsOptions>{ using type = interface_category; };
      template <> struct category<Windows::Services::Cortana::ICortanaActionableInsightsStatics>{ using type = interface_category; };
      template <> struct category<Windows::Services::Cortana::ICortanaPermissionsManager>{ using type = interface_category; };
      template <> struct category<Windows::Services::Cortana::ICortanaPermissionsManagerStatics>{ using type = interface_category; };
      template <> struct category<Windows::Services::Cortana::ICortanaSettings>{ using type = interface_category; };
      template <> struct category<Windows::Services::Cortana::ICortanaSettingsStatics>{ using type = interface_category; };
      template <> struct category<Windows::Services::Cortana::CortanaActionableInsights>{ using type = class_category; };
      template <> struct category<Windows::Services::Cortana::CortanaActionableInsightsOptions>{ using type = class_category; };
      template <> struct category<Windows::Services::Cortana::CortanaPermissionsManager>{ using type = class_category; };
      template <> struct category<Windows::Services::Cortana::CortanaSettings>{ using type = class_category; };
      template <> struct category<Windows::Services::Cortana::CortanaPermission>{ using type = enum_category; };
      template <> struct category<Windows::Services::Cortana::CortanaPermissionsChangeResult>{ using type = enum_category; };
      template <> inline constexpr auto& name_v<Windows::Services::Cortana::CortanaActionableInsights> = L"Windows.Services.Cortana.CortanaActionableInsights";
      template <> inline constexpr auto& name_v<Windows::Services::Cortana::CortanaActionableInsightsOptions> = L"Windows.Services.Cortana.CortanaActionableInsightsOptions";
      template <> inline constexpr auto& name_v<Windows::Services::Cortana::CortanaPermissionsManager> = L"Windows.Services.Cortana.CortanaPermissionsManager";
      template <> inline constexpr auto& name_v<Windows::Services::Cortana::CortanaSettings> = L"Windows.Services.Cortana.CortanaSettings";
      template <> inline constexpr auto& name_v<Windows::Services::Cortana::CortanaPermission> = L"Windows.Services.Cortana.CortanaPermission";
      template <> inline constexpr auto& name_v<Windows::Services::Cortana::CortanaPermissionsChangeResult> = L"Windows.Services.Cortana.CortanaPermissionsChangeResult";
      template <> inline constexpr auto& name_v<Windows::Services::Cortana::ICortanaActionableInsights> = L"Windows.Services.Cortana.ICortanaActionableInsights";
      template <> inline constexpr auto& name_v<Windows::Services::Cortana::ICortanaActionableInsightsOptions> = L"Windows.Services.Cortana.ICortanaActionableInsightsOptions";
      template <> inline constexpr auto& name_v<Windows::Services::Cortana::ICortanaActionableInsightsStatics> = L"Windows.Services.Cortana.ICortanaActionableInsightsStatics";
      template <> inline constexpr auto& name_v<Windows::Services::Cortana::ICortanaPermissionsManager> = L"Windows.Services.Cortana.ICortanaPermissionsManager";
      template <> inline constexpr auto& name_v<Windows::Services::Cortana::ICortanaPermissionsManagerStatics> = L"Windows.Services.Cortana.ICortanaPermissionsManagerStatics";
      template <> inline constexpr auto& name_v<Windows::Services::Cortana::ICortanaSettings> = L"Windows.Services.Cortana.ICortanaSettings";
      template <> inline constexpr auto& name_v<Windows::Services::Cortana::ICortanaSettingsStatics> = L"Windows.Services.Cortana.ICortanaSettingsStatics";
      template <> inline constexpr guid guid_v<Windows::Services::Cortana::ICortanaActionableInsights>{ 0x951EC6B1,0xFC83,0x586D,{ 0x8B,0x84,0x24,0x52,0xC8,0x98,0x16,0x25 } }; // 951EC6B1-FC83-586D-8B84-2452C8981625
      template <> inline constexpr guid guid_v<Windows::Services::Cortana::ICortanaActionableInsightsOptions>{ 0xAAC2BBCF,0x9782,0x5420,{ 0xB8,0x1E,0x7A,0xE5,0x6A,0xF3,0x18,0x15 } }; // AAC2BBCF-9782-5420-B81E-7AE56AF31815
      template <> inline constexpr guid guid_v<Windows::Services::Cortana::ICortanaActionableInsightsStatics>{ 0xB5DED412,0x9D2F,0x5CB5,{ 0x9B,0x05,0x35,0x6A,0x0B,0x83,0x6C,0x10 } }; // B5DED412-9D2F-5CB5-9B05-356A0B836C10
      template <> inline constexpr guid guid_v<Windows::Services::Cortana::ICortanaPermissionsManager>{ 0x191330E0,0x8695,0x438A,{ 0x95,0x45,0x3D,0xA4,0xE8,0x22,0xDD,0xB4 } }; // 191330E0-8695-438A-9545-3DA4E822DDB4
      template <> inline constexpr guid guid_v<Windows::Services::Cortana::ICortanaPermissionsManagerStatics>{ 0x76B1E67A,0xB045,0x4414,{ 0x9D,0x6D,0x2A,0xD3,0xA5,0xFE,0x3A,0x7E } }; // 76B1E67A-B045-4414-9D6D-2AD3A5FE3A7E
      template <> inline constexpr guid guid_v<Windows::Services::Cortana::ICortanaSettings>{ 0x54D571A7,0x8062,0x40F4,{ 0xAB,0xE7,0xDE,0xDF,0xD6,0x97,0xB0,0x19 } }; // 54D571A7-8062-40F4-ABE7-DEDFD697B019
      template <> inline constexpr guid guid_v<Windows::Services::Cortana::ICortanaSettingsStatics>{ 0x8B2CCD7E,0x2EC0,0x446D,{ 0x92,0x85,0x33,0xF0,0x7C,0xE8,0xAC,0x04 } }; // 8B2CCD7E-2EC0-446D-9285-33F07CE8AC04
      template <> struct default_interface<Windows::Services::Cortana::CortanaActionableInsights>{ using type = Windows::Services::Cortana::ICortanaActionableInsights; };
      template <> struct default_interface<Windows::Services::Cortana::CortanaActionableInsightsOptions>{ using type = Windows::Services::Cortana::ICortanaActionableInsightsOptions; };
      template <> struct default_interface<Windows::Services::Cortana::CortanaPermissionsManager>{ using type = Windows::Services::Cortana::ICortanaPermissionsManager; };
      template <> struct default_interface<Windows::Services::Cortana::CortanaSettings>{ using type = Windows::Services::Cortana::ICortanaSettings; };
      template <> struct abi<Windows::Services::Cortana::ICortanaActionableInsights>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_User(void**) noexcept = 0;
              virtual int32_t __stdcall IsAvailableAsync(void**) noexcept = 0;
              virtual int32_t __stdcall ShowInsightsForImageAsync(void*, void**) noexcept = 0;
              virtual int32_t __stdcall ShowInsightsForImageWithOptionsAsync(void*, void*, void**) noexcept = 0;
              virtual int32_t __stdcall ShowInsightsForTextAsync(void*, void**) noexcept = 0;
              virtual int32_t __stdcall ShowInsightsForTextWithOptionsAsync(void*, void*, void**) noexcept = 0;
              virtual int32_t __stdcall ShowInsightsAsync(void*, void**) noexcept = 0;
              virtual int32_t __stdcall ShowInsightsWithOptionsAsync(void*, void*, void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::Services::Cortana::ICortanaActionableInsightsOptions>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_ContentSourceWebLink(void**) noexcept = 0;
              virtual int32_t __stdcall put_ContentSourceWebLink(void*) noexcept = 0;
              virtual int32_t __stdcall get_SurroundingText(void**) noexcept = 0;
              virtual int32_t __stdcall put_SurroundingText(void*) noexcept = 0;
          };
      };
      template <> struct abi<Windows::Services::Cortana::ICortanaActionableInsightsStatics>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall GetDefault(void**) noexcept = 0;
              virtual int32_t __stdcall GetForUser(void*, void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::Services::Cortana::ICortanaPermissionsManager>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall IsSupported(bool*) noexcept = 0;
              virtual int32_t __stdcall ArePermissionsGrantedAsync(void*, void**) noexcept = 0;
              virtual int32_t __stdcall GrantPermissionsAsync(void*, void**) noexcept = 0;
              virtual int32_t __stdcall RevokePermissionsAsync(void*, void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::Services::Cortana::ICortanaPermissionsManagerStatics>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall GetDefault(void**) noexcept = 0;
          };
      };
      template <> struct abi<Windows::Services::Cortana::ICortanaSettings>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall get_HasUserConsentToVoiceActivation(bool*) noexcept = 0;
              virtual int32_t __stdcall get_IsVoiceActivationEnabled(bool*) noexcept = 0;
              virtual int32_t __stdcall put_IsVoiceActivationEnabled(bool) noexcept = 0;
          };
      };
      template <> struct abi<Windows::Services::Cortana::ICortanaSettingsStatics>
      {
          struct __declspec(novtable) type : inspectable_abi
          {
              virtual int32_t __stdcall IsSupported(bool*) noexcept = 0;
              virtual int32_t __stdcall GetDefault(void**) noexcept = 0;
          };
      };
      template <typename D>
      struct consume_Windows_Services_Cortana_ICortanaActionableInsights
      {
          [[nodiscard]] WINRT_IMPL_AUTO(Windows::System::User) User() const;
          WINRT_IMPL_AUTO(Windows::Foundation::IAsyncOperation<bool>) IsAvailableAsync() const;
          WINRT_IMPL_AUTO(Windows::Foundation::IAsyncAction) ShowInsightsForImageAsync(Windows::Storage::Streams::IRandomAccessStreamReference const& imageStream) const;
          WINRT_IMPL_AUTO(Windows::Foundation::IAsyncAction) ShowInsightsForImageAsync(Windows::Storage::Streams::IRandomAccessStreamReference const& imageStream, Windows::Services::Cortana::CortanaActionableInsightsOptions const& options) const;
          WINRT_IMPL_AUTO(Windows::Foundation::IAsyncAction) ShowInsightsForTextAsync(param::hstring const& text) const;
          WINRT_IMPL_AUTO(Windows::Foundation::IAsyncAction) ShowInsightsForTextAsync(param::hstring const& text, Windows::Services::Cortana::CortanaActionableInsightsOptions const& options) const;
          WINRT_IMPL_AUTO(Windows::Foundation::IAsyncAction) ShowInsightsAsync(Windows::ApplicationModel::DataTransfer::DataPackage const& datapackage) const;
          WINRT_IMPL_AUTO(Windows::Foundation::IAsyncAction) ShowInsightsAsync(Windows::ApplicationModel::DataTransfer::DataPackage const& datapackage, Windows::Services::Cortana::CortanaActionableInsightsOptions const& options) const;
      };
      template <> struct consume<Windows::Services::Cortana::ICortanaActionableInsights>
      {
          template <typename D> using type = consume_Windows_Services_Cortana_ICortanaActionableInsights<D>;
      };
      template <typename D>
      struct consume_Windows_Services_Cortana_ICortanaActionableInsightsOptions
      {
          [[nodiscard]] WINRT_IMPL_AUTO(Windows::Foundation::Uri) ContentSourceWebLink() const;
          WINRT_IMPL_AUTO(void) ContentSourceWebLink(Windows::Foundation::Uri const& value) const;
          [[nodiscard]] WINRT_IMPL_AUTO(hstring) SurroundingText() const;
          WINRT_IMPL_AUTO(void) SurroundingText(param::hstring const& value) const;
      };
      template <> struct consume<Windows::Services::Cortana::ICortanaActionableInsightsOptions>
      {
          template <typename D> using type = consume_Windows_Services_Cortana_ICortanaActionableInsightsOptions<D>;
      };
      template <typename D>
      struct consume_Windows_Services_Cortana_ICortanaActionableInsightsStatics
      {
          WINRT_IMPL_AUTO(Windows::Services::Cortana::CortanaActionableInsights) GetDefault() const;
          WINRT_IMPL_AUTO(Windows::Services::Cortana::CortanaActionableInsights) GetForUser(Windows::System::User const& user) const;
      };
      template <> struct consume<Windows::Services::Cortana::ICortanaActionableInsightsStatics>
      {
          template <typename D> using type = consume_Windows_Services_Cortana_ICortanaActionableInsightsStatics<D>;
      };
      template <typename D>
      struct consume_Windows_Services_Cortana_ICortanaPermissionsManager
      {
          WINRT_IMPL_AUTO(bool) IsSupported() const;
          WINRT_IMPL_AUTO(Windows::Foundation::IAsyncOperation<bool>) ArePermissionsGrantedAsync(param::async_iterable<Windows::Services::Cortana::CortanaPermission> const& permissions) const;
          WINRT_IMPL_AUTO(Windows::Foundation::IAsyncOperation<Windows::Services::Cortana::CortanaPermissionsChangeResult>) GrantPermissionsAsync(param::async_iterable<Windows::Services::Cortana::CortanaPermission> const& permissions) const;
          WINRT_IMPL_AUTO(Windows::Foundation::IAsyncOperation<Windows::Services::Cortana::CortanaPermissionsChangeResult>) RevokePermissionsAsync(param::async_iterable<Windows::Services::Cortana::CortanaPermission> const& permissions) const;
      };
      template <> struct consume<Windows::Services::Cortana::ICortanaPermissionsManager>
      {
          template <typename D> using type = consume_Windows_Services_Cortana_ICortanaPermissionsManager<D>;
      };
      template <typename D>
      struct consume_Windows_Services_Cortana_ICortanaPermissionsManagerStatics
      {
          WINRT_IMPL_AUTO(Windows::Services::Cortana::CortanaPermissionsManager) GetDefault() const;
      };
      template <> struct consume<Windows::Services::Cortana::ICortanaPermissionsManagerStatics>
      {
          template <typename D> using type = consume_Windows_Services_Cortana_ICortanaPermissionsManagerStatics<D>;
      };
      template <typename D>
      struct consume_Windows_Services_Cortana_ICortanaSettings
      {
          [[nodiscard]] WINRT_IMPL_AUTO(bool) HasUserConsentToVoiceActivation() const;
          [[nodiscard]] WINRT_IMPL_AUTO(bool) IsVoiceActivationEnabled() const;
          WINRT_IMPL_AUTO(void) IsVoiceActivationEnabled(bool value) const;
      };
      template <> struct consume<Windows::Services::Cortana::ICortanaSettings>
      {
          template <typename D> using type = consume_Windows_Services_Cortana_ICortanaSettings<D>;
      };
      template <typename D>
      struct consume_Windows_Services_Cortana_ICortanaSettingsStatics
      {
          WINRT_IMPL_AUTO(bool) IsSupported() const;
          WINRT_IMPL_AUTO(Windows::Services::Cortana::CortanaSettings) GetDefault() const;
      };
      template <> struct consume<Windows::Services::Cortana::ICortanaSettingsStatics>
      {
          template <typename D> using type = consume_Windows_Services_Cortana_ICortanaSettingsStatics<D>;
      };
  }
  #endif
  