Contact Contact Contact Class

Definition

Represents a contact.

public : sealed class Contact : IContact, IContact2, IContact3, IContactNamepublic sealed class Contact : IContact, IContact2, IContact3, IContactNamePublic NotInheritable Class Contact Implements IContact, IContact2, IContact3, IContactName
Attributes
Windows 10 requirements
Device family
Windows 10 (introduced v10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduced v1)

Examples

This code shows how your app can take an app-specific contact object and use it to create a Contact object. First, here's an example of an object that contains contact information.

    var sampleContacts = [
        {
            firstName: "Kim",
            lastName: "Abercrombie",
            image: "KimAbercrombie.jpg",
            personalEmail: "kim@contoso.com",
            homePhone: "921 555-0187",
            address: {
                full: "123 Main St, Redmond WA, 23456",
                street: "123 Main St",
                city: "Redmond",
                state: "WA",
                zipCode: "23456"
            },
            id: "49b0652e-8f39-48c5-853b-e5e94e6b8a11"
        }
];
function createContactForBasket(sampleContact) {

    // Transfer contact data to a Contact object
    var contact = new Windows.ApplicationModel.Contacts.Contact();
    contact.firstName = sampleContact.firstName;
    contact.lastName = sampleContact.lastName;
    contact.id = sampleContact.id;

    // Add the personal email address to the Contact object’s emails vector
    var personalEmail = new Windows.ApplicationModel.Contacts.ContactEmail();
    personalEmail.address = sampleContact.personalEmail;
    personalEmail.kind = Windows.ApplicationModel.Contacts.ContactEmailKind.personal;
    contact.emails.append(personalEmail);

    // Adds the home phone number to the Contact object’s phones vector
    var homePhone = new Windows.ApplicationModel.Contacts.ContactPhone();
    homePhone.number = sampleContact.homePhone;
    homePhone.kind = Windows.ApplicationModel.Contacts.ContactPhoneKind.home;
    contact.phones.append(homePhone);

    // Adds the address to the Contact object’s addresses vector
    var homeAddress = new Windows.ApplicationModel.Contacts.ContactAddress();
    homeAddress.streetAddress = sampleContact.address.street;
    homeAddress.locality = sampleContact.address.city;
    homeAddress.region = sampleContact.address.state;
    homeAddress.postalCode = sampleContact.address.zipCode;
    homeAddress.kind = Windows.ApplicationModel.Contacts.ContactAddressKind.home;
    contact.addresses.append(homeAddress);

    // Sets the thumbnail for the contact from path
    Windows.ApplicationModel.Package.current.installedLocation.getFileAsync(sampleContact.image).then(
          function (imageFile) {
                 var streamReference = Windows.Storage.Streams.RandomAccessStreamReference.createFromFile(imageFile);
                 contact.thumbnail = randomAccessStreamReference;
          });

    return contact;
}

Remarks

No matter how you store contact information in your app, you must be able to put that information into a Contact object. This way, other apps that allow users to select contacts can use your app and process the contact information it provides.

For info about how to manage contacts, see Managing contact cards and Managing contact cards .

Constructors

Contact() Contact() Contact()

Creates a new instance of the Contact class.

public : Contact()public Contact()Public Sub New()
Attributes

Properties

Addresses Addresses Addresses

Gets the contact addresses for a contact.

public : IVector<ContactAddress> Addresses { get; }public IList<ContactAddress> Addresses { get; }Public ReadOnly Property Addresses As IList<ContactAddress>
Value
IVector<ContactAddress> IList<ContactAddress> IList<ContactAddress>

An array of contact addresses for a contact.

Attributes

AggregateId AggregateId AggregateId

If this is a raw contact that is part of an aggregate contact, then this property identifies the parent aggregate.

public : PlatForm::String AggregateId { get; }public string AggregateId { get; }Public ReadOnly Property AggregateId As string
Value
PlatForm::String string string

String value that identifies the parent aggregate contact.

Attributes

ConnectedServiceAccounts ConnectedServiceAccounts ConnectedServiceAccounts

Gets the connected service accounts for a contact.

public : IVector<ContactConnectedServiceAccount> ConnectedServiceAccounts { get; }public IList<ContactConnectedServiceAccount> ConnectedServiceAccounts { get; }Public ReadOnly Property ConnectedServiceAccounts As IList<ContactConnectedServiceAccount>
Value
IVector<ContactConnectedServiceAccount> IList<ContactConnectedServiceAccount> IList<ContactConnectedServiceAccount>

An array of connected service accounts for a contact.

Attributes

ContactListId ContactListId ContactListId

Gets a string that identifies the ContactList to which this contact is a member.

public : PlatForm::String ContactListId { get; }public string ContactListId { get; }Public ReadOnly Property ContactListId As string
Value
PlatForm::String string string

A string that identifies the ContactList to which this contact is a member.

Attributes

DataSuppliers DataSuppliers DataSuppliers

Gets the data suppliers for a contact. The maximum string length for each data supplier is 50 characters.

public : IVector<string> DataSuppliers { get; }public IList<string> DataSuppliers { get; }Public ReadOnly Property DataSuppliers As IList<string>
Value
IVector<PlatForm::String> IList<string> IList<string>

An array of data suppliers for a contact.

Attributes

DisplayName DisplayName DisplayName

Gets the display name for a contact.

Note

You can only access this property from a UI thread.

public : PlatForm::String DisplayName { get; }public string DisplayName { get; }Public ReadOnly Property DisplayName As string
Value
PlatForm::String string string

The display name for a contact.

Attributes

Remarks

Windows calculates the DisplayName property by using the values from the FirstName, MiddleName, and LastName properties if any are specified. If these values aren't available, Windows uses the Yomi (phonetic Japanese equivalent) name values (YomiGivenName and YomiFamilyName ). The calculation for DisplayName takes into account different locale hints such as script of the text in the names, resource context, and default user locale to determine the proper formatting template for the name.

DisplayNameOverride DisplayNameOverride DisplayNameOverride

Gets or sets the display that was manually entered by the user.

public : PlatForm::String DisplayNameOverride { get; set; }public string DisplayNameOverride { get; set; }Public ReadWrite Property DisplayNameOverride As string
Value
PlatForm::String string string

The display that was manually entered by the user.

Attributes

DisplayPictureUserUpdateTime DisplayPictureUserUpdateTime DisplayPictureUserUpdateTime

Gets or sets the last time the user updated their display picture.

public : DateTime DisplayPictureUserUpdateTime { get; set; }public DateTimeOffset DisplayPictureUserUpdateTime { get; set; }Public ReadWrite Property DisplayPictureUserUpdateTime As DateTimeOffset
Value
DateTime DateTimeOffset DateTimeOffset

The last time the user updated their display picture.

Attributes

Emails Emails Emails

Gets the email addresses for a contact.

public : IVector<ContactEmail> Emails { get; }public IList<ContactEmail> Emails { get; }Public ReadOnly Property Emails As IList<ContactEmail>
Value
IVector<ContactEmail> IList<ContactEmail> IList<ContactEmail>

An array of email addresses for a contact.

Attributes

Fields Fields Fields

Note

Fields may be altered or unavailable for releases after Windows 8.1. Instead, use Phones, Emails, Addresses, or ConnectedServiceAccounts.

Sets the fields that contain information about a contact.

public : IVector<IContactField> Fields { get; }public IList<IContactField> Fields { get; }Public ReadOnly Property Fields As IList<IContactField>
Value
IVector<IContactField> IList<IContactField> IList<IContactField>

An array of fields containing information about a contact.

Attributes

Examples

These functions show how you can add different fields to a Contact object.

function appendField(fields, value, type, category) {
    if (value) {
        fields.append(new Windows.ApplicationModel.Contacts.ContactField(value, type, category));
    }
}
function appendEmail(fields, email, category) {
    // Adds a new email to the contact fields vector
    appendField(fields, email, Windows.ApplicationModel.Contacts.ContactFieldType.email, category);
}
function appendPhoneNumber(fields, phone, category) {
    // Adds a new phone number to the contact fields vector
    appendField(fields, phone, Windows.ApplicationModel.Contacts.ContactFieldType.phoneNumber, category);
}
function appendAddress(fields, address, category) {
    // Adds a new address to the contact fields vector
    if (address) {
        fields.append(new Windows.ApplicationModel.Contacts.ContactLocationField(
                        address.full, category, address.street, address.city, address.state, "", address.zipCode));
    }
}

Remarks

The ContactFieldCategory and ContactFieldType classes provide information about what kind of information you can put into a field.

FirstName FirstName FirstName

Gets and sets the first name for a contact. The maximum string length for the first name is 64 characters.

public : PlatForm::String FirstName { get; set; }public string FirstName { get; set; }Public ReadWrite Property FirstName As string
Value
PlatForm::String string string

The first name for a contact.

Attributes
See Also

FullName FullName FullName

Gets the full name of the Contact.

public : PlatForm::String FullName { get; }public string FullName { get; }Public ReadOnly Property FullName As string
Value
PlatForm::String string string

The full name of the Contact.

Attributes

HonorificNamePrefix HonorificNamePrefix HonorificNamePrefix

Gets and sets the honorific prefix for the name for a contact. The maximum string length for the honorific prefix is 32 characters.

public : PlatForm::String HonorificNamePrefix { get; set; }public string HonorificNamePrefix { get; set; }Public ReadWrite Property HonorificNamePrefix As string
Value
PlatForm::String string string

The honorific prefix for the name for a contact.

Attributes

Remarks

Common name prefixes are Ms, Miss, Mrs, Mr, Dr, and so on.

HonorificNameSuffix HonorificNameSuffix HonorificNameSuffix

Gets and sets the honorific suffix for the name for a contact. The maximum string length for the honorific suffix is 32 characters.

public : PlatForm::String HonorificNameSuffix { get; set; }public string HonorificNameSuffix { get; set; }Public ReadWrite Property HonorificNameSuffix As string
Value
PlatForm::String string string

The honorific suffix for the name for a contact.

Attributes

Remarks

A suffix follows the contact's name and provides additional info about the contact, like an academic degree (M.D. for medical doctor).

Id Id Id

Gets and sets the identifier for a contact. The maximum string length for the identifier is 256 characters.

Note

The Id property must be set when you call AddContact, ContainsContact, or RemoveContact. If Id isn't set when you call AddContact, your app will fail. If Id isn't set when you call ContainsContact or RemoveContact, your app won't be able to find or remove the contact.

public : PlatForm::String Id { get; set; }public string Id { get; set; }Public ReadWrite Property Id As string
Value
PlatForm::String string string

The identifier for a contact.

Attributes

ImportantDates ImportantDates ImportantDates

Gets the important dates for a contact.

public : IVector<ContactDate> ImportantDates { get; }public IList<ContactDate> ImportantDates { get; }Public ReadOnly Property ImportantDates As IList<ContactDate>
Value
IVector<ContactDate> IList<ContactDate> IList<ContactDate>

An array of important dates for a contact.

Attributes

IsAggregate IsAggregate IsAggregate

Gets a Boolean value indicating of this is an aggregate Contact.

public : PlatForm::Boolean IsAggregate { get; }public bool IsAggregate { get; }Public ReadOnly Property IsAggregate As bool
Value
PlatForm::Boolean bool bool

Boolean value indicating of this is an aggregate Contact.

Attributes

IsDisplayPictureManuallySet IsDisplayPictureManuallySet IsDisplayPictureManuallySet

Gets a Boolean value indicating if the user manually set the picture for the Contact.

public : PlatForm::Boolean IsDisplayPictureManuallySet { get; }public bool IsDisplayPictureManuallySet { get; }Public ReadOnly Property IsDisplayPictureManuallySet As bool
Value
PlatForm::Boolean bool bool

True if the user manually set the picture, false if this is an aggregate contact and the picture was chosen from one of the raw child contacts.

Attributes

IsMe IsMe IsMe

Gets a Boolean value indicating if this Contact represents the user logged into the device.

public : PlatForm::Boolean IsMe { get; }public bool IsMe { get; }Public ReadOnly Property IsMe As bool
Value
PlatForm::Boolean bool bool

Boolean value indicating if this Contact represents the user logged into the device.

Attributes

JobInfo JobInfo JobInfo

Gets the job info items for a contact.

public : IVector<ContactJobInfo> JobInfo { get; }public IList<ContactJobInfo> JobInfo { get; }Public ReadOnly Property JobInfo As IList<ContactJobInfo>
Value
IVector<ContactJobInfo> IList<ContactJobInfo> IList<ContactJobInfo>

An array of job info items for a contact.

Attributes

LargeDisplayPicture LargeDisplayPicture LargeDisplayPicture

Gets a large version of the display picture for the Contact.

public : IRandomAccessStreamReference LargeDisplayPicture { get; }public IRandomAccessStreamReference LargeDisplayPicture { get; }Public ReadOnly Property LargeDisplayPicture As IRandomAccessStreamReference
Attributes

LastName LastName LastName

Gets and sets the last name for a contact. The maximum string length for the last name is 64 characters.

public : PlatForm::String LastName { get; set; }public string LastName { get; set; }Public ReadWrite Property LastName As string
Value
PlatForm::String string string

The last name for a contact.

Attributes
See Also

MiddleName MiddleName MiddleName

Gets and sets the middle name for a contact. The maximum string length for the middle name is 64 characters.

public : PlatForm::String MiddleName { get; set; }public string MiddleName { get; set; }Public ReadWrite Property MiddleName As string
Value
PlatForm::String string string

The middle name for a contact.

Attributes
See Also

Name Name Name

Note

Name may be altered or unavailable for releases after Windows 8.1. Instead, use FirstName.

Sets and gets the name of the contact.

public : PlatForm::String Name { get; set; }public string Name { get; set; }Public ReadWrite Property Name As string
Value
PlatForm::String string string

The name of the contact.

Attributes

Examples

This example shows a function taking the name property and returning the first and last names of the contact.

function getFirstAndLastName(contact) {
    var name = contact.name;
    if (name.indexOf(" ") != -1) {
        var firstAndLast = name.split(" ");
        return {
            first: firstAndLast[0],
            last: firstAndLast[1]
        };
    } else {
        return null;
    }
}

Remarks

An app can set the name property to any value that matches the name of a contact. We recommend that you set this value to contain both the first and last names of the contact, if that information is available.

Nickname Nickname Nickname

Gets or sets the nickname for the Contact.

public : PlatForm::String Nickname { get; set; }public string Nickname { get; set; }Public ReadWrite Property Nickname As string
Value
PlatForm::String string string

The nickname for the Contact.

Attributes

Notes Notes Notes

Gets and sets notes for a contact. The maximum string length for notes is 4096 characters.

public : PlatForm::String Notes { get; set; }public string Notes { get; set; }Public ReadWrite Property Notes As string
Value
PlatForm::String string string

A string that contains notes for a contact.

Attributes

Phones Phones Phones

Gets info about the phones for a contact.

public : IVector<ContactPhone> Phones { get; }public IList<ContactPhone> Phones { get; }Public ReadOnly Property Phones As IList<ContactPhone>
Value
IVector<ContactPhone> IList<ContactPhone> IList<ContactPhone>

An array of items that describe the phones for a contact.

Attributes

ProviderProperties ProviderProperties ProviderProperties

Gets the property set object for the contact.

public : IPropertySet ProviderProperties { get; }public IPropertySet ProviderProperties { get; }Public ReadOnly Property ProviderProperties As IPropertySet
Value
IPropertySet IPropertySet IPropertySet

The IPropertySet interface for the property set object for the contact.

Attributes
See Also

RemoteId RemoteId RemoteId

Gets or sets an ID that can be used by a service provider to access the Contact in their remote system.

public : PlatForm::String RemoteId { get; set; }public string RemoteId { get; set; }Public ReadWrite Property RemoteId As string
Value
PlatForm::String string string

An ID that can be used by a service provider to access the Contact in their remote system.

Attributes

RingToneToken RingToneToken RingToneToken

Gets or puts the path to the ringtone file for the Contact.

public : PlatForm::String RingToneToken { get; set; }public string RingToneToken { get; set; }Public ReadWrite Property RingToneToken As string
Value
PlatForm::String string string

The path to the ringtone file for the Contact.

Attributes

SignificantOthers SignificantOthers SignificantOthers

Gets the significant others for a contact.

public : IVector<ContactSignificantOther> SignificantOthers { get; }public IList<ContactSignificantOther> SignificantOthers { get; }Public ReadOnly Property SignificantOthers As IList<ContactSignificantOther>
Value
IVector<ContactSignificantOther> IList<ContactSignificantOther> IList<ContactSignificantOther>

An array of significant others for a contact.

Attributes

SmallDisplayPicture SmallDisplayPicture SmallDisplayPicture

Gets a small version of the display picture for the Contact.

public : IRandomAccessStreamReference SmallDisplayPicture { get; }public IRandomAccessStreamReference SmallDisplayPicture { get; }Public ReadOnly Property SmallDisplayPicture As IRandomAccessStreamReference
Attributes

SortName SortName SortName

Gets the name used to sort the contact.

public : PlatForm::String SortName { get; }public string SortName { get; }Public ReadOnly Property SortName As string
Value
PlatForm::String string string

The name used to sort the contact.

Attributes

SourceDisplayPicture SourceDisplayPicture SourceDisplayPicture

Gets or sets the display picture for the Contact in its original size.

public : IRandomAccessStreamReference SourceDisplayPicture { get; set; }public IRandomAccessStreamReference SourceDisplayPicture { get; set; }Public ReadWrite Property SourceDisplayPicture As IRandomAccessStreamReference
Value
IRandomAccessStreamReference IRandomAccessStreamReference IRandomAccessStreamReference

The display picture for the Contact in its original size.

Attributes

Remarks

The SmallDisplayPicture, LargeDisplayPicture and Thumbnail are generated from this picture.

TextToneToken TextToneToken TextToneToken

Gets or puts the path to the audio file to play when an SMS/MMS message is received from the Contact.

public : PlatForm::String TextToneToken { get; set; }public string TextToneToken { get; set; }Public ReadWrite Property TextToneToken As string
Value
PlatForm::String string string

The path to the audio file to play when an SMS/MMS message is received from the Contact.

Attributes

Thumbnail Thumbnail Thumbnail

Gets or sets a thumbnail image that represents this contact.

public : IRandomAccessStreamReference Thumbnail { get; set; }public IRandomAccessStreamReference Thumbnail { get; set; }Public ReadWrite Property Thumbnail As IRandomAccessStreamReference
Attributes

Websites Websites Websites

Gets the Web sites for a contact.

public : IVector<ContactWebsite> Websites { get; }public IList<ContactWebsite> Websites { get; }Public ReadOnly Property Websites As IList<ContactWebsite>
Value
IVector<ContactWebsite> IList<ContactWebsite> IList<ContactWebsite>

An array of Web sites for a contact.

Attributes

YomiDisplayName YomiDisplayName YomiDisplayName

Gets the Yomi (phonetic Japanese equivalent) display name for a contact.

public : PlatForm::String YomiDisplayName { get; }public string YomiDisplayName { get; }Public ReadOnly Property YomiDisplayName As string
Value
PlatForm::String string string

The Yomi display name for a contact.

Attributes

Remarks

Windows calculates the YomiDisplayName property by using the values from the YomiGivenName and YomiFamilyName properties. The calculation for YomiDisplayName takes into account different locale hints such as script of the text in the names, resource context, and default user locale to determine the proper formatting template for the name.

YomiFamilyName YomiFamilyName YomiFamilyName

Gets the Yomi (phonetic Japanese equivalent) family name for a contact. The maximum string length for the Yomi family name is 120 characters.

public : PlatForm::String YomiFamilyName { get; set; }public string YomiFamilyName { get; set; }Public ReadWrite Property YomiFamilyName As string
Value
PlatForm::String string string

The Yomi family name for a contact.

Attributes

YomiGivenName YomiGivenName YomiGivenName

Gets the Yomi (phonetic Japanese equivalent) given name for a contact. The maximum string length for the Yomi given name is 120 characters.

public : PlatForm::String YomiGivenName { get; set; }public string YomiGivenName { get; set; }Public ReadWrite Property YomiGivenName As string
Value
PlatForm::String string string

The Yomi given name for a contact.

Attributes

See Also