// WARNING: Please don't edit this file. It was generated by C++/WinRT v2.0.220531.1

#pragma once
#ifndef WINRT_Windows_Phone_PersonalInformation_0_H
#define WINRT_Windows_Phone_PersonalInformation_0_H
WINRT_EXPORT namespace winrt::Windows::Foundation
{
    struct IAsyncAction;
}
WINRT_EXPORT namespace winrt::Windows::Foundation::Collections
{
    template <typename K, typename V> struct __declspec(empty_bases) IMapView;
}
WINRT_EXPORT namespace winrt::Windows::Storage::Streams
{
    struct IInputStream;
    struct IRandomAccessStreamReference;
}
WINRT_EXPORT namespace winrt::Windows::Phone::PersonalInformation
{
    enum class ContactChangeType : int32_t
    {
        Created = 0,
        Modified = 1,
        Deleted = 2,
    };
    enum class ContactQueryResultOrdering : int32_t
    {
        SystemDefault = 0,
        GivenNameFamilyName = 1,
        FamilyNameGivenName = 2,
    };
    enum class ContactStoreApplicationAccessMode : int32_t
    {
        LimitedReadOnly = 0,
        ReadOnly = 1,
    };
    enum class ContactStoreSystemAccessMode : int32_t
    {
        ReadOnly = 0,
        ReadWrite = 1,
    };
    enum class VCardFormat : int32_t
    {
        Version2_1 = 0,
        Version3 = 1,
    };
    struct IContactAddress;
    struct IContactChangeRecord;
    struct IContactInformation;
    struct IContactInformation2;
    struct IContactInformationStatics;
    struct IContactQueryOptions;
    struct IContactQueryResult;
    struct IContactStore;
    struct IContactStore2;
    struct IContactStoreStatics;
    struct IKnownContactPropertiesStatics;
    struct IStoredContact;
    struct IStoredContactFactory;
    struct ContactAddress;
    struct ContactChangeRecord;
    struct ContactInformation;
    struct ContactQueryOptions;
    struct ContactQueryResult;
    struct ContactStore;
    struct KnownContactProperties;
    struct StoredContact;
}
namespace winrt::impl
{
    template <> struct category<winrt::Windows::Phone::PersonalInformation::IContactAddress>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Phone::PersonalInformation::IContactChangeRecord>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Phone::PersonalInformation::IContactInformation>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Phone::PersonalInformation::IContactInformation2>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Phone::PersonalInformation::IContactInformationStatics>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Phone::PersonalInformation::IContactQueryOptions>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Phone::PersonalInformation::IContactQueryResult>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Phone::PersonalInformation::IContactStore>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Phone::PersonalInformation::IContactStore2>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Phone::PersonalInformation::IContactStoreStatics>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Phone::PersonalInformation::IKnownContactPropertiesStatics>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Phone::PersonalInformation::IStoredContact>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Phone::PersonalInformation::IStoredContactFactory>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Phone::PersonalInformation::ContactAddress>{ using type = class_category; };
    template <> struct category<winrt::Windows::Phone::PersonalInformation::ContactChangeRecord>{ using type = class_category; };
    template <> struct category<winrt::Windows::Phone::PersonalInformation::ContactInformation>{ using type = class_category; };
    template <> struct category<winrt::Windows::Phone::PersonalInformation::ContactQueryOptions>{ using type = class_category; };
    template <> struct category<winrt::Windows::Phone::PersonalInformation::ContactQueryResult>{ using type = class_category; };
    template <> struct category<winrt::Windows::Phone::PersonalInformation::ContactStore>{ using type = class_category; };
    template <> struct category<winrt::Windows::Phone::PersonalInformation::KnownContactProperties>{ using type = class_category; };
    template <> struct category<winrt::Windows::Phone::PersonalInformation::StoredContact>{ using type = class_category; };
    template <> struct category<winrt::Windows::Phone::PersonalInformation::ContactChangeType>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Phone::PersonalInformation::ContactQueryResultOrdering>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Phone::PersonalInformation::ContactStoreApplicationAccessMode>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Phone::PersonalInformation::ContactStoreSystemAccessMode>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Phone::PersonalInformation::VCardFormat>{ using type = enum_category; };
    template <> inline constexpr auto& name_v<winrt::Windows::Phone::PersonalInformation::ContactAddress> = L"Windows.Phone.PersonalInformation.ContactAddress";
    template <> inline constexpr auto& name_v<winrt::Windows::Phone::PersonalInformation::ContactChangeRecord> = L"Windows.Phone.PersonalInformation.ContactChangeRecord";
    template <> inline constexpr auto& name_v<winrt::Windows::Phone::PersonalInformation::ContactInformation> = L"Windows.Phone.PersonalInformation.ContactInformation";
    template <> inline constexpr auto& name_v<winrt::Windows::Phone::PersonalInformation::ContactQueryOptions> = L"Windows.Phone.PersonalInformation.ContactQueryOptions";
    template <> inline constexpr auto& name_v<winrt::Windows::Phone::PersonalInformation::ContactQueryResult> = L"Windows.Phone.PersonalInformation.ContactQueryResult";
    template <> inline constexpr auto& name_v<winrt::Windows::Phone::PersonalInformation::ContactStore> = L"Windows.Phone.PersonalInformation.ContactStore";
    template <> inline constexpr auto& name_v<winrt::Windows::Phone::PersonalInformation::KnownContactProperties> = L"Windows.Phone.PersonalInformation.KnownContactProperties";
    template <> inline constexpr auto& name_v<winrt::Windows::Phone::PersonalInformation::StoredContact> = L"Windows.Phone.PersonalInformation.StoredContact";
    template <> inline constexpr auto& name_v<winrt::Windows::Phone::PersonalInformation::ContactChangeType> = L"Windows.Phone.PersonalInformation.ContactChangeType";
    template <> inline constexpr auto& name_v<winrt::Windows::Phone::PersonalInformation::ContactQueryResultOrdering> = L"Windows.Phone.PersonalInformation.ContactQueryResultOrdering";
    template <> inline constexpr auto& name_v<winrt::Windows::Phone::PersonalInformation::ContactStoreApplicationAccessMode> = L"Windows.Phone.PersonalInformation.ContactStoreApplicationAccessMode";
    template <> inline constexpr auto& name_v<winrt::Windows::Phone::PersonalInformation::ContactStoreSystemAccessMode> = L"Windows.Phone.PersonalInformation.ContactStoreSystemAccessMode";
    template <> inline constexpr auto& name_v<winrt::Windows::Phone::PersonalInformation::VCardFormat> = L"Windows.Phone.PersonalInformation.VCardFormat";
    template <> inline constexpr auto& name_v<winrt::Windows::Phone::PersonalInformation::IContactAddress> = L"Windows.Phone.PersonalInformation.IContactAddress";
    template <> inline constexpr auto& name_v<winrt::Windows::Phone::PersonalInformation::IContactChangeRecord> = L"Windows.Phone.PersonalInformation.IContactChangeRecord";
    template <> inline constexpr auto& name_v<winrt::Windows::Phone::PersonalInformation::IContactInformation> = L"Windows.Phone.PersonalInformation.IContactInformation";
    template <> inline constexpr auto& name_v<winrt::Windows::Phone::PersonalInformation::IContactInformation2> = L"Windows.Phone.PersonalInformation.IContactInformation2";
    template <> inline constexpr auto& name_v<winrt::Windows::Phone::PersonalInformation::IContactInformationStatics> = L"Windows.Phone.PersonalInformation.IContactInformationStatics";
    template <> inline constexpr auto& name_v<winrt::Windows::Phone::PersonalInformation::IContactQueryOptions> = L"Windows.Phone.PersonalInformation.IContactQueryOptions";
    template <> inline constexpr auto& name_v<winrt::Windows::Phone::PersonalInformation::IContactQueryResult> = L"Windows.Phone.PersonalInformation.IContactQueryResult";
    template <> inline constexpr auto& name_v<winrt::Windows::Phone::PersonalInformation::IContactStore> = L"Windows.Phone.PersonalInformation.IContactStore";
    template <> inline constexpr auto& name_v<winrt::Windows::Phone::PersonalInformation::IContactStore2> = L"Windows.Phone.PersonalInformation.IContactStore2";
    template <> inline constexpr auto& name_v<winrt::Windows::Phone::PersonalInformation::IContactStoreStatics> = L"Windows.Phone.PersonalInformation.IContactStoreStatics";
    template <> inline constexpr auto& name_v<winrt::Windows::Phone::PersonalInformation::IKnownContactPropertiesStatics> = L"Windows.Phone.PersonalInformation.IKnownContactPropertiesStatics";
    template <> inline constexpr auto& name_v<winrt::Windows::Phone::PersonalInformation::IStoredContact> = L"Windows.Phone.PersonalInformation.IStoredContact";
    template <> inline constexpr auto& name_v<winrt::Windows::Phone::PersonalInformation::IStoredContactFactory> = L"Windows.Phone.PersonalInformation.IStoredContactFactory";
    template <> inline constexpr guid guid_v<winrt::Windows::Phone::PersonalInformation::IContactAddress>{ 0x5F24F927,0x94A9,0x44A2,{ 0xA1,0x55,0x2D,0x0B,0x37,0xD1,0xDC,0xCD } }; // 5F24F927-94A9-44A2-A155-2D0B37D1DCCD
    template <> inline constexpr guid guid_v<winrt::Windows::Phone::PersonalInformation::IContactChangeRecord>{ 0xB9D3F78F,0x513B,0x4742,{ 0xBE,0x00,0xCC,0x5C,0x5C,0x23,0x6B,0x04 } }; // B9D3F78F-513B-4742-BE00-CC5C5C236B04
    template <> inline constexpr guid guid_v<winrt::Windows::Phone::PersonalInformation::IContactInformation>{ 0xE2B51FFC,0xE792,0x4AB7,{ 0xB1,0x5B,0xF2,0xE0,0x78,0x66,0x4D,0xEA } }; // E2B51FFC-E792-4AB7-B15B-F2E078664DEA
    template <> inline constexpr guid guid_v<winrt::Windows::Phone::PersonalInformation::IContactInformation2>{ 0x3198B20C,0x621E,0x4668,{ 0xAC,0x38,0xD6,0x67,0xB8,0x7D,0x06,0xD5 } }; // 3198B20C-621E-4668-AC38-D667B87D06D5
    template <> inline constexpr guid guid_v<winrt::Windows::Phone::PersonalInformation::IContactInformationStatics>{ 0x0F67BB29,0x03D0,0x4BE6,{ 0xB2,0xA5,0xFB,0x13,0x85,0x9F,0x12,0x02 } }; // 0F67BB29-03D0-4BE6-B2A5-FB13859F1202
    template <> inline constexpr guid guid_v<winrt::Windows::Phone::PersonalInformation::IContactQueryOptions>{ 0x580CAB76,0x3F31,0x46C1,{ 0x9A,0x50,0x42,0x4A,0x53,0xDA,0xCA,0xE3 } }; // 580CAB76-3F31-46C1-9A50-424A53DACAE3
    template <> inline constexpr guid guid_v<winrt::Windows::Phone::PersonalInformation::IContactQueryResult>{ 0xC03DB722,0xECDB,0x4700,{ 0x85,0x7E,0x3E,0x78,0x64,0x26,0xB0,0x4B } }; // C03DB722-ECDB-4700-857E-3E786426B04B
    template <> inline constexpr guid guid_v<winrt::Windows::Phone::PersonalInformation::IContactStore>{ 0xB2CD6FEF,0x2BFD,0x4FAD,{ 0x85,0x52,0x4E,0x69,0x80,0x97,0xE8,0xEB } }; // B2CD6FEF-2BFD-4FAD-8552-4E698097E8EB
    template <> inline constexpr guid guid_v<winrt::Windows::Phone::PersonalInformation::IContactStore2>{ 0x65F1B64F,0xD653,0x43A7,{ 0xB2,0x36,0xB3,0x0C,0x0F,0x4D,0x72,0x69 } }; // 65F1B64F-D653-43A7-B236-B30C0F4D7269
    template <> inline constexpr guid guid_v<winrt::Windows::Phone::PersonalInformation::IContactStoreStatics>{ 0xA804FE22,0x4BEB,0x44CC,{ 0xA5,0x72,0x67,0xA5,0xB9,0x2E,0x85,0x67 } }; // A804FE22-4BEB-44CC-A572-67A5B92E8567
    template <> inline constexpr guid guid_v<winrt::Windows::Phone::PersonalInformation::IKnownContactPropertiesStatics>{ 0xD5812B01,0x2CED,0x4EE6,{ 0xB1,0xD6,0x09,0x4B,0xF8,0x8E,0xF0,0xB6 } }; // D5812B01-2CED-4EE6-B1D6-094BF88EF0B6
    template <> inline constexpr guid guid_v<winrt::Windows::Phone::PersonalInformation::IStoredContact>{ 0xB070B7B1,0x263D,0x4E71,{ 0xAB,0xE7,0x59,0x1D,0x24,0x66,0x57,0x0E } }; // B070B7B1-263D-4E71-ABE7-591D2466570E
    template <> inline constexpr guid guid_v<winrt::Windows::Phone::PersonalInformation::IStoredContactFactory>{ 0x49EDE921,0xC225,0x4FD9,{ 0x89,0xC5,0xCE,0xCC,0x2C,0x8A,0x4B,0x79 } }; // 49EDE921-C225-4FD9-89C5-CECC2C8A4B79
    template <> struct default_interface<winrt::Windows::Phone::PersonalInformation::ContactAddress>{ using type = winrt::Windows::Phone::PersonalInformation::IContactAddress; };
    template <> struct default_interface<winrt::Windows::Phone::PersonalInformation::ContactChangeRecord>{ using type = winrt::Windows::Phone::PersonalInformation::IContactChangeRecord; };
    template <> struct default_interface<winrt::Windows::Phone::PersonalInformation::ContactInformation>{ using type = winrt::Windows::Phone::PersonalInformation::IContactInformation; };
    template <> struct default_interface<winrt::Windows::Phone::PersonalInformation::ContactQueryOptions>{ using type = winrt::Windows::Phone::PersonalInformation::IContactQueryOptions; };
    template <> struct default_interface<winrt::Windows::Phone::PersonalInformation::ContactQueryResult>{ using type = winrt::Windows::Phone::PersonalInformation::IContactQueryResult; };
    template <> struct default_interface<winrt::Windows::Phone::PersonalInformation::ContactStore>{ using type = winrt::Windows::Phone::PersonalInformation::IContactStore; };
    template <> struct default_interface<winrt::Windows::Phone::PersonalInformation::StoredContact>{ using type = winrt::Windows::Phone::PersonalInformation::IStoredContact; };
    template <> struct abi<winrt::Windows::Phone::PersonalInformation::IContactAddress>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_Country(void**) noexcept = 0;
            virtual int32_t __stdcall put_Country(void*) noexcept = 0;
            virtual int32_t __stdcall get_Locality(void**) noexcept = 0;
            virtual int32_t __stdcall put_Locality(void*) noexcept = 0;
            virtual int32_t __stdcall get_Region(void**) noexcept = 0;
            virtual int32_t __stdcall put_Region(void*) noexcept = 0;
            virtual int32_t __stdcall get_PostalCode(void**) noexcept = 0;
            virtual int32_t __stdcall put_PostalCode(void*) noexcept = 0;
            virtual int32_t __stdcall get_StreetAddress(void**) noexcept = 0;
            virtual int32_t __stdcall put_StreetAddress(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Phone::PersonalInformation::IContactChangeRecord>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_ChangeType(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_RevisionNumber(uint64_t*) noexcept = 0;
            virtual int32_t __stdcall get_Id(void**) noexcept = 0;
            virtual int32_t __stdcall get_RemoteId(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Phone::PersonalInformation::IContactInformation>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_DisplayName(void**) noexcept = 0;
            virtual int32_t __stdcall put_DisplayName(void*) noexcept = 0;
            virtual int32_t __stdcall get_FamilyName(void**) noexcept = 0;
            virtual int32_t __stdcall put_FamilyName(void*) noexcept = 0;
            virtual int32_t __stdcall get_GivenName(void**) noexcept = 0;
            virtual int32_t __stdcall put_GivenName(void*) noexcept = 0;
            virtual int32_t __stdcall get_HonorificPrefix(void**) noexcept = 0;
            virtual int32_t __stdcall put_HonorificPrefix(void*) noexcept = 0;
            virtual int32_t __stdcall get_HonorificSuffix(void**) noexcept = 0;
            virtual int32_t __stdcall put_HonorificSuffix(void*) noexcept = 0;
            virtual int32_t __stdcall GetDisplayPictureAsync(void**) noexcept = 0;
            virtual int32_t __stdcall SetDisplayPictureAsync(void*, void**) noexcept = 0;
            virtual int32_t __stdcall get_DisplayPicture(void**) noexcept = 0;
            virtual int32_t __stdcall GetPropertiesAsync(void**) noexcept = 0;
            virtual int32_t __stdcall ToVcardAsync(void**) noexcept = 0;
            virtual int32_t __stdcall ToVcardWithOptionsAsync(int32_t, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Phone::PersonalInformation::IContactInformation2>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_DisplayPictureDate(int64_t*) noexcept = 0;
            virtual int32_t __stdcall put_DisplayPictureDate(int64_t) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Phone::PersonalInformation::IContactInformationStatics>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall ParseVcardAsync(void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Phone::PersonalInformation::IContactQueryOptions>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_DesiredFields(void**) noexcept = 0;
            virtual int32_t __stdcall get_OrderBy(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_OrderBy(int32_t) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Phone::PersonalInformation::IContactQueryResult>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall GetContactCountAsync(void**) noexcept = 0;
            virtual int32_t __stdcall GetContactsAsync(void**) noexcept = 0;
            virtual int32_t __stdcall GetContactsAsyncInRange(uint32_t, uint32_t, void**) noexcept = 0;
            virtual int32_t __stdcall GetCurrentQueryOptions(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Phone::PersonalInformation::IContactStore>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall FindContactByRemoteIdAsync(void*, void**) noexcept = 0;
            virtual int32_t __stdcall FindContactByIdAsync(void*, void**) noexcept = 0;
            virtual int32_t __stdcall DeleteContactAsync(void*, void**) noexcept = 0;
            virtual int32_t __stdcall CreateContactQueryDefault(void**) noexcept = 0;
            virtual int32_t __stdcall CreateContactQueryWithOptions(void*, void**) noexcept = 0;
            virtual int32_t __stdcall DeleteAsync(void**) noexcept = 0;
            virtual int32_t __stdcall get_RevisionNumber(uint64_t*) noexcept = 0;
            virtual int32_t __stdcall GetChangesAsync(uint64_t, void**) noexcept = 0;
            virtual int32_t __stdcall LoadExtendedPropertiesAsync(void**) noexcept = 0;
            virtual int32_t __stdcall SaveExtendedPropertiesAsync(void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Phone::PersonalInformation::IContactStore2>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall CreateMeContactAsync(void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Phone::PersonalInformation::IContactStoreStatics>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall CreateOrOpenAsync(void**) noexcept = 0;
            virtual int32_t __stdcall CreateOrOpenWithOptionsAsync(int32_t, int32_t, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Phone::PersonalInformation::IKnownContactPropertiesStatics>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_DisplayName(void**) noexcept = 0;
            virtual int32_t __stdcall get_FamilyName(void**) noexcept = 0;
            virtual int32_t __stdcall get_GivenName(void**) noexcept = 0;
            virtual int32_t __stdcall get_HonorificPrefix(void**) noexcept = 0;
            virtual int32_t __stdcall get_HonorificSuffix(void**) noexcept = 0;
            virtual int32_t __stdcall get_AdditionalName(void**) noexcept = 0;
            virtual int32_t __stdcall get_Address(void**) noexcept = 0;
            virtual int32_t __stdcall get_OtherAddress(void**) noexcept = 0;
            virtual int32_t __stdcall get_Email(void**) noexcept = 0;
            virtual int32_t __stdcall get_WorkAddress(void**) noexcept = 0;
            virtual int32_t __stdcall get_WorkTelephone(void**) noexcept = 0;
            virtual int32_t __stdcall get_JobTitle(void**) noexcept = 0;
            virtual int32_t __stdcall get_Birthdate(void**) noexcept = 0;
            virtual int32_t __stdcall get_Anniversary(void**) noexcept = 0;
            virtual int32_t __stdcall get_Telephone(void**) noexcept = 0;
            virtual int32_t __stdcall get_MobileTelephone(void**) noexcept = 0;
            virtual int32_t __stdcall get_Url(void**) noexcept = 0;
            virtual int32_t __stdcall get_Notes(void**) noexcept = 0;
            virtual int32_t __stdcall get_WorkFax(void**) noexcept = 0;
            virtual int32_t __stdcall get_Children(void**) noexcept = 0;
            virtual int32_t __stdcall get_SignificantOther(void**) noexcept = 0;
            virtual int32_t __stdcall get_CompanyName(void**) noexcept = 0;
            virtual int32_t __stdcall get_CompanyTelephone(void**) noexcept = 0;
            virtual int32_t __stdcall get_HomeFax(void**) noexcept = 0;
            virtual int32_t __stdcall get_AlternateTelephone(void**) noexcept = 0;
            virtual int32_t __stdcall get_Manager(void**) noexcept = 0;
            virtual int32_t __stdcall get_Nickname(void**) noexcept = 0;
            virtual int32_t __stdcall get_OfficeLocation(void**) noexcept = 0;
            virtual int32_t __stdcall get_WorkEmail(void**) noexcept = 0;
            virtual int32_t __stdcall get_YomiGivenName(void**) noexcept = 0;
            virtual int32_t __stdcall get_YomiFamilyName(void**) noexcept = 0;
            virtual int32_t __stdcall get_YomiCompanyName(void**) noexcept = 0;
            virtual int32_t __stdcall get_OtherEmail(void**) noexcept = 0;
            virtual int32_t __stdcall get_AlternateMobileTelephone(void**) noexcept = 0;
            virtual int32_t __stdcall get_AlternateWorkTelephone(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Phone::PersonalInformation::IStoredContact>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_Store(void**) noexcept = 0;
            virtual int32_t __stdcall get_Id(void**) noexcept = 0;
            virtual int32_t __stdcall get_RemoteId(void**) noexcept = 0;
            virtual int32_t __stdcall put_RemoteId(void*) noexcept = 0;
            virtual int32_t __stdcall GetExtendedPropertiesAsync(void**) noexcept = 0;
            virtual int32_t __stdcall SaveAsync(void**) noexcept = 0;
            virtual int32_t __stdcall ReplaceExistingContactAsync(void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Phone::PersonalInformation::IStoredContactFactory>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall CreateStoredContact(void*, void**) noexcept = 0;
            virtual int32_t __stdcall CreateStoredContactFromInformation(void*, void*, void**) noexcept = 0;
        };
    };
    template <typename D>
    struct consume_Windows_Phone_PersonalInformation_IContactAddress
    {
        [[nodiscard]] auto Country() const;
        auto Country(param::hstring const& value) const;
        [[nodiscard]] auto Locality() const;
        auto Locality(param::hstring const& value) const;
        [[nodiscard]] auto Region() const;
        auto Region(param::hstring const& value) const;
        [[nodiscard]] auto PostalCode() const;
        auto PostalCode(param::hstring const& value) const;
        [[nodiscard]] auto StreetAddress() const;
        auto StreetAddress(param::hstring const& value) const;
    };
    template <> struct consume<winrt::Windows::Phone::PersonalInformation::IContactAddress>
    {
        template <typename D> using type = consume_Windows_Phone_PersonalInformation_IContactAddress<D>;
    };
    template <typename D>
    struct consume_Windows_Phone_PersonalInformation_IContactChangeRecord
    {
        [[nodiscard]] auto ChangeType() const;
        [[nodiscard]] auto RevisionNumber() const;
        [[nodiscard]] auto Id() const;
        [[nodiscard]] auto RemoteId() const;
    };
    template <> struct consume<winrt::Windows::Phone::PersonalInformation::IContactChangeRecord>
    {
        template <typename D> using type = consume_Windows_Phone_PersonalInformation_IContactChangeRecord<D>;
    };
    template <typename D>
    struct consume_Windows_Phone_PersonalInformation_IContactInformation
    {
        [[nodiscard]] auto DisplayName() const;
        auto DisplayName(param::hstring const& value) const;
        [[nodiscard]] auto FamilyName() const;
        auto FamilyName(param::hstring const& value) const;
        [[nodiscard]] auto GivenName() const;
        auto GivenName(param::hstring const& value) const;
        [[nodiscard]] auto HonorificPrefix() const;
        auto HonorificPrefix(param::hstring const& value) const;
        [[nodiscard]] auto HonorificSuffix() const;
        auto HonorificSuffix(param::hstring const& value) const;
        auto GetDisplayPictureAsync() const;
        auto SetDisplayPictureAsync(winrt::Windows::Storage::Streams::IInputStream const& stream) const;
        [[nodiscard]] auto DisplayPicture() const;
        auto GetPropertiesAsync() const;
        auto ToVcardAsync() const;
        auto ToVcardAsync(winrt::Windows::Phone::PersonalInformation::VCardFormat const& format) const;
    };
    template <> struct consume<winrt::Windows::Phone::PersonalInformation::IContactInformation>
    {
        template <typename D> using type = consume_Windows_Phone_PersonalInformation_IContactInformation<D>;
    };
    template <typename D>
    struct consume_Windows_Phone_PersonalInformation_IContactInformation2
    {
        [[nodiscard]] auto DisplayPictureDate() const;
        auto DisplayPictureDate(winrt::Windows::Foundation::DateTime const& returnValue) const;
    };
    template <> struct consume<winrt::Windows::Phone::PersonalInformation::IContactInformation2>
    {
        template <typename D> using type = consume_Windows_Phone_PersonalInformation_IContactInformation2<D>;
    };
    template <typename D>
    struct consume_Windows_Phone_PersonalInformation_IContactInformationStatics
    {
        auto ParseVcardAsync(winrt::Windows::Storage::Streams::IInputStream const& vcard) const;
    };
    template <> struct consume<winrt::Windows::Phone::PersonalInformation::IContactInformationStatics>
    {
        template <typename D> using type = consume_Windows_Phone_PersonalInformation_IContactInformationStatics<D>;
    };
    template <typename D>
    struct consume_Windows_Phone_PersonalInformation_IContactQueryOptions
    {
        [[nodiscard]] auto DesiredFields() const;
        [[nodiscard]] auto OrderBy() const;
        auto OrderBy(winrt::Windows::Phone::PersonalInformation::ContactQueryResultOrdering const& value) const;
    };
    template <> struct consume<winrt::Windows::Phone::PersonalInformation::IContactQueryOptions>
    {
        template <typename D> using type = consume_Windows_Phone_PersonalInformation_IContactQueryOptions<D>;
    };
    template <typename D>
    struct consume_Windows_Phone_PersonalInformation_IContactQueryResult
    {
        auto GetContactCountAsync() const;
        auto GetContactsAsync() const;
        auto GetContactsAsync(uint32_t startIndex, uint32_t maxNumberOfItems) const;
        auto GetCurrentQueryOptions() const;
    };
    template <> struct consume<winrt::Windows::Phone::PersonalInformation::IContactQueryResult>
    {
        template <typename D> using type = consume_Windows_Phone_PersonalInformation_IContactQueryResult<D>;
    };
    template <typename D>
    struct consume_Windows_Phone_PersonalInformation_IContactStore
    {
        auto FindContactByRemoteIdAsync(param::hstring const& id) const;
        auto FindContactByIdAsync(param::hstring const& id) const;
        auto DeleteContactAsync(param::hstring const& id) const;
        auto CreateContactQuery() const;
        auto CreateContactQuery(winrt::Windows::Phone::PersonalInformation::ContactQueryOptions const& options) const;
        auto DeleteAsync() const;
        [[nodiscard]] auto RevisionNumber() const;
        auto GetChangesAsync(uint64_t baseRevisionNumber) const;
        auto LoadExtendedPropertiesAsync() const;
        auto SaveExtendedPropertiesAsync(param::async_map_view<hstring, winrt::Windows::Foundation::IInspectable> const& data) const;
    };
    template <> struct consume<winrt::Windows::Phone::PersonalInformation::IContactStore>
    {
        template <typename D> using type = consume_Windows_Phone_PersonalInformation_IContactStore<D>;
    };
    template <typename D>
    struct consume_Windows_Phone_PersonalInformation_IContactStore2
    {
        auto CreateMeContactAsync(param::hstring const& id) const;
    };
    template <> struct consume<winrt::Windows::Phone::PersonalInformation::IContactStore2>
    {
        template <typename D> using type = consume_Windows_Phone_PersonalInformation_IContactStore2<D>;
    };
    template <typename D>
    struct consume_Windows_Phone_PersonalInformation_IContactStoreStatics
    {
        auto CreateOrOpenAsync() const;
        auto CreateOrOpenAsync(winrt::Windows::Phone::PersonalInformation::ContactStoreSystemAccessMode const& access, winrt::Windows::Phone::PersonalInformation::ContactStoreApplicationAccessMode const& sharing) const;
    };
    template <> struct consume<winrt::Windows::Phone::PersonalInformation::IContactStoreStatics>
    {
        template <typename D> using type = consume_Windows_Phone_PersonalInformation_IContactStoreStatics<D>;
    };
    template <typename D>
    struct consume_Windows_Phone_PersonalInformation_IKnownContactPropertiesStatics
    {
        [[nodiscard]] auto DisplayName() const;
        [[nodiscard]] auto FamilyName() const;
        [[nodiscard]] auto GivenName() const;
        [[nodiscard]] auto HonorificPrefix() const;
        [[nodiscard]] auto HonorificSuffix() const;
        [[nodiscard]] auto AdditionalName() const;
        [[nodiscard]] auto Address() const;
        [[nodiscard]] auto OtherAddress() const;
        [[nodiscard]] auto Email() const;
        [[nodiscard]] auto WorkAddress() const;
        [[nodiscard]] auto WorkTelephone() const;
        [[nodiscard]] auto JobTitle() const;
        [[nodiscard]] auto Birthdate() const;
        [[nodiscard]] auto Anniversary() const;
        [[nodiscard]] auto Telephone() const;
        [[nodiscard]] auto MobileTelephone() const;
        [[nodiscard]] auto Url() const;
        [[nodiscard]] auto Notes() const;
        [[nodiscard]] auto WorkFax() const;
        [[nodiscard]] auto Children() const;
        [[nodiscard]] auto SignificantOther() const;
        [[nodiscard]] auto CompanyName() const;
        [[nodiscard]] auto CompanyTelephone() const;
        [[nodiscard]] auto HomeFax() const;
        [[nodiscard]] auto AlternateTelephone() const;
        [[nodiscard]] auto Manager() const;
        [[nodiscard]] auto Nickname() const;
        [[nodiscard]] auto OfficeLocation() const;
        [[nodiscard]] auto WorkEmail() const;
        [[nodiscard]] auto YomiGivenName() const;
        [[nodiscard]] auto YomiFamilyName() const;
        [[nodiscard]] auto YomiCompanyName() const;
        [[nodiscard]] auto OtherEmail() const;
        [[nodiscard]] auto AlternateMobileTelephone() const;
        [[nodiscard]] auto AlternateWorkTelephone() const;
    };
    template <> struct consume<winrt::Windows::Phone::PersonalInformation::IKnownContactPropertiesStatics>
    {
        template <typename D> using type = consume_Windows_Phone_PersonalInformation_IKnownContactPropertiesStatics<D>;
    };
    template <typename D>
    struct consume_Windows_Phone_PersonalInformation_IStoredContact
    {
        [[nodiscard]] auto Store() const;
        [[nodiscard]] auto Id() const;
        [[nodiscard]] auto RemoteId() const;
        auto RemoteId(param::hstring const& value) const;
        auto GetExtendedPropertiesAsync() const;
        auto SaveAsync() const;
        auto ReplaceExistingContactAsync(param::hstring const& id) const;
    };
    template <> struct consume<winrt::Windows::Phone::PersonalInformation::IStoredContact>
    {
        template <typename D> using type = consume_Windows_Phone_PersonalInformation_IStoredContact<D>;
    };
    template <typename D>
    struct consume_Windows_Phone_PersonalInformation_IStoredContactFactory
    {
        auto CreateStoredContact(winrt::Windows::Phone::PersonalInformation::ContactStore const& store) const;
        auto CreateStoredContactFromInformation(winrt::Windows::Phone::PersonalInformation::ContactStore const& store, winrt::Windows::Phone::PersonalInformation::ContactInformation const& contact) const;
    };
    template <> struct consume<winrt::Windows::Phone::PersonalInformation::IStoredContactFactory>
    {
        template <typename D> using type = consume_Windows_Phone_PersonalInformation_IStoredContactFactory<D>;
    };
}
#endif
