次の方法で共有


SyncFolderItemsType クラス

定義

クラスはSyncFolderItemsType、フォルダー内のアイテムを 2007 年Microsoft Exchange Server実行しているコンピューターと同期する要求を表します。

public ref class SyncFolderItemsType : ExchangeWebServices::BaseRequestType
public class SyncFolderItemsType : ExchangeWebServices.BaseRequestType
Public Class SyncFolderItemsType
Inherits BaseRequestType
継承
SyncFolderItemsType

次の例では、受信トレイ フォルダー内のアイテムを同期する方法を示します。 プロパティが SyncState 設定されているため、フォルダー内の項目は以前に同期されています。 この SyncFolderItems 操作は、 プロパティによって表される同期呼び出し以降に行われたすべての変更を SyncState 返します。 この呼び出しでは、最大 100 個の項目が返されます。これは、該当する場合、そのアイテム識別子とその件名フィールドによって表されます。 また、この呼び出しでは 1 つの項目が無視されます。

static void SyncFolderItems(ExchangeServiceBinding esb)
{ 
    // Create the request.
    SyncFolderItemsType <span class="label">request</span> = new SyncFolderItemsType();

    // Identify the properties that are synchronized.
    ItemResponseShapeType shape = new ItemResponseShapeType();
    shape.BaseShape = DefaultShapeNamesType.IdOnly;
    PathToUnindexedFieldType itemSubject = new PathToUnindexedFieldType();
    itemSubject.FieldURI = UnindexedFieldURIType.itemSubject;
    shape.AdditionalProperties = new BasePathToElementType[1];
    shape.AdditionalProperties[0] = itemSubject;

    // Add the synchronized properties to the request.
<span class="label">request</span>.ItemShape = shape;

    // Define the maximum number of changes returned in the response.
<span class="label">request</span>.MaxChangesReturned = 100;

    // Identify the folder to synchronize.
    DistinguishedFolderIdType inbox = new DistinguishedFolderIdType();
    inbox.Id = DistinguishedFolderIdNameType.inbox;
<span class="label">request</span>.SyncFolderId = new TargetFolderIdType();
<span class="label">request</span>.SyncFolderId.Item = inbox;

    // Add the synchronization state to the request.
<span class="label">request</span>.SyncState = "wQ3YnacHwN3pRYZFQ1jv7HwSZzl/z/wESqUej1h8AAA==";

    // Identify which items should not be synchronized.
<span class="label">request</span>.Ignore = new ItemIdType[1];
<span class="label">request</span>.Ignore[0] = new ItemIdType();
<span class="label">request</span>.Ignore[0].Id = "AAAlAE1BQG1haW5lcmNvbnRvc";
<span class="label">request</span>.Ignore[0].ChangeKey = "CQAAABYAAAAMoHzy8/QATr21qKEgNudZAG6ns+MG";

    // Send the request and get the response.
    SyncFolderItemsResponseType response = esb.SyncFolderItems(<span class="label">request</span>);

    ArrayOfResponseMessagesType aormt = response.ResponseMessages;
    ResponseMessageType[] rmta = aormt.Items;

    if (rmta[0].ResponseClass == ResponseClassType.Success)
    {
        // Cast the response message to the appropriate type.
        SyncFolderItemsResponseMessageType sfirmt = rmta[0] as SyncFolderItemsResponseMessageType;

        // Get the sync state string to use in later synchronization calls.
        string syncState = sfirmt.SyncState;

        // Get the array of changes that are returned in the response.
        SyncFolderItemsChangesType changeArray = sfirmt.Changes;

        // This contains the array of item changes.
        object[] changes = changeArray.Items;

        // This identifies the type of change that occurred on an item.
        ItemsChoiceType2 changeType;

        for (int count = 0; count &lt; changes.Length; count++)
        { 
            // This identifies the type of change that is represented by the objects
            // in the changes object[].
            changeType = changeArray.ItemsElementName[count];

            // Check for the change type of each folder that is returned in the response.
            switch (changeType)
            {
                case ItemsChoiceType2.Create:
                    SyncFolderItemsCreateOrUpdateType createdItem = changes[count] as SyncFolderItemsCreateOrUpdateType;
                    // TODO: Handle the created item.
                    if (createdItem.Item is TaskType)
                    {
                        // TODO: Cast to task item and handle properties.
                    }
                    else;
                    // TODO: Check and cast for MeetingCancellationMessageType, MeetingResponseMessageType,
                    // MeetingRequestMessageType, MeetingMessageType, DistributionListType, ContactItemType,
                    // CalendarItemType, MessageType, or ItemType types.
                    break;

                case ItemsChoiceType2.Update:
                    SyncFolderItemsCreateOrUpdateType updatedItem = changes[count] as SyncFolderItemsCreateOrUpdateType;
                    // TODO: Handle the updated item.
                    // TODO: Check and cast to one of the 10 item types.
                    break;

                case ItemsChoiceType2.ReadFlagChange:
                    SyncFolderItemsCreateOrUpdateType changeReadFlag = changes[count] as SyncFolderItemsCreateOrUpdateType;
                    // TODO: Check and cast to one of the 10 item types.
                    // TODO: Update the read flag on the local item.
                    break;
                case ItemsChoiceType2.Delete:
                    SyncFolderItemsDeleteType deletedItem = changes[count] as SyncFolderItemsDeleteType;
                    // TODO: Get the identifier of the deleted item.
                    break;
            }
        }
    }
}

注釈

フォルダー階層を同期するには、プロキシ オブジェクトを SyncFolderHierarchyType 使用します。

コンストラクター

SyncFolderItemsType()

コンストラクターは SyncFolderItemsType 、 クラスの新しいインスタンスを SyncFolderItemsType 初期化します。

プロパティ

Ignore

プロパティは Ignore 、同期のためにスキップする項目の配列を取得または設定します。 このプロパティは省略可能です。 これは、読み取り/書き込みプロパティです。

ItemShape

プロパティは ItemShape 、応答で返されるプロパティを表す図形を取得または設定します。 このプロパティは必須です。 これは、読み取り/書き込みプロパティです。

MaxChangesReturned

プロパティは MaxChangesReturned 、同期応答で返すことができる変更の最大数を取得または設定します。 このプロパティは必須です。 これは、読み取り/書き込みプロパティです。

SyncFolderId

プロパティは SyncFolderId 、同期する項目を含むフォルダーの ID を取得または設定します。 このプロパティは必須です。 これは、読み取り/書き込みプロパティです。

SyncScope

プロパティは SyncScope 、同期応答で SyncFolderItemsScopeType 項目または項目とフォルダーの関連情報のみを返すかどうかを指定する列挙値の 1 つを取得または設定します。

SyncScopeSpecified

プロパティは SyncScopeSpecified 、プロパティを SOAP 要求にシリアル化するかどうかを SyncScope 指定するブール値を取得または設定します。 プロパティが指定されている場合は、 SyncScope このプロパティが必要です。

SyncState

プロパティは SyncState 、同期状態識別子を取得または設定します。 このプロパティは省略可能で、注意が必要です。 これは、読み取り/書き込みプロパティです。

適用対象