新しい MAPI プロパティを定義します。Defining New MAPI Properties

適用されます: OutlookApplies to: Outlook

にもかかわらず、クライアントとサービスのプロバイダーで使用するため、MAPI によって提供されるプロパティの豊富なは、MAPI は、必要な場合に作成する新しいプロパティを使用できます。In spite of the wealth of properties supplied by MAPI for use by clients and service providers, MAPI enables new properties to be created if necessary. いくつかの新しいパブリック プロパティを定義するための有効なシナリオには、新しいメッセージ クラスと新しいプロパティを作成する独自のメッセージング システムの機能を公開するサービス プロバイダーをサポートするためにプロパティを作成するクライアントが含まれます。Some of the valid scenarios for defining new public properties include a client creating properties to support a new message class and a service provider creating new properties to expose unique messaging system features.

通常、既存の MAPI オブジェクトまたはメッセージ クラスの新しいプロパティを定義するのにはサービス ・ プロバイダーに対して無効です。It is typically not valid for a service provider to define new properties for an existing MAPI object or message class. 識別子の標準と形式の要素を設定して、シームレスに混在させるし、一致するユーザーを有効にすると、メッセージング システムの多数のサービスのプロバイダーが、MAPI を使用する場合の主な利点の 1 つ。One of the primary benefits of using MAPI is that standard identifiers and formats for a large number of messaging system elements are set up, enabling users to seamlessly mix and match service providers. 非標準プロパティを使用するサービス プロバイダーは他のサービス プロバイダーにも機能しません。Service providers that use nonstandard properties do not work as well with other service providers.

クライアントは、新しいメッセージ クラスのコンテンツのプロパティを作成できます。Clients can create content properties for new message classes by:

  • メッセージ クラスに固有のコンテンツ プロパティの指定された範囲内のプロパティの識別子を使用しています。Using property identifiers within a designated range for message class-specific content properties.

    • または、Or -
  • 名前付きプロパティを使用します。Using named properties.

すべてのサービス プロバイダーが名前付きプロパティをサポートしているために、最初のオプションの使用をお勧めします。The first option is preferable because not all service providers support named properties. MAPI には、新規のメッセージ クラスに固有のコンテンツ プロパティを使用するクライアントの 2 つの別の範囲が定義されています。MAPI defines two separate ranges for clients to use for new message class-specific content properties:

  • 転送可能なプロパティの 0x6800 に 0x7BFF0x6800 to 0x7BFF for transmittable properties

  • 0x7C00 に 0x7FFF nontransmittable のプロパティ0x7C00 to 0x7FFF for nontransmittable properties

プロパティ識別子は、さまざまなベンダー、またはユーザーによって定義されたプロパティとの間の衝突を防ぐための定義済みの範囲である必要があります。Property identifiers must fall in predefined ranges to help prevent collisions between properties defined by different vendors or users. ただし、これらの範囲内のプロパティのユーザーは、プロパティの動作についての前提条件を作成できません。However, users of properties in these ranges cannot make assumptions as to the behavior of the properties. 新しいメッセージ クラスを作成するすべてのクライアントがこれらの範囲へのアクセス権を持つ_xxxx_の識別子を持つプロパティは、1 つのメッセージ クラスの 1 つの動作ともう 1 つのメッセージ クラスの別の動作を意味します。Every client that creates a new message class has access to these ranges; a property with identifier xxxx can mean one behavior for one message class and another behavior for another message class.

名前付きプロパティは、特定のプロパティは、メッセージ クラスを一意に保証するために使用されます。Named properties are used to guarantee a specific property is unique to a message class. 0x8000 の範囲の名前付きプロパティの識別子を開始します。Named property identifiers start in the 0x8000 range. クライアントでは、1 つまたは複数の名前を定義し、それぞれの名前と識別子を関連付けるには、メッセージ ストアのIMAPIProp::GetIDsFromNamesメソッドを呼び出しています。Clients define one or more names and then call the message store's IMAPIProp::GetIDsFromNames method to associate an identifier with each name. 名前付きプロパティは、オブジェクトの所有者は、名前付きプロパティをサポートしている場合にのみ、任意のオブジェクトの新しいプロパティを定義するのには、クライアントまたはサービス プロバイダーによって使用できます。Named properties can be used by clients or service providers to define new properties for any object only if the owner of the object supports named properties. これらのプロパティのユーザー名と識別子にマップするには、 GetIDsFromNamesと関連するIMAPIPropメソッドでは、 GetNamesFromIDsを呼び出します。Users of these properties call GetIDsFromNames and a related IMAPIProp method, GetNamesFromIDs, to map between a name and its identifier.

新規または既存のすべてのプロパティは、一連の定義済みのプロパティの種類を使用してください。All properties, new or existing, must use the set of predefined property types. 新しいプロパティの種類を追加することはできませんし、既存の型を変更または削除することはできません。New property types cannot be added and existing types cannot be modified or deleted. 任意の適切な型では、単純で小さななどのプロパティを単一の文字または 16 ビット整数のプロパティを格納できます。Simple, small properties, such as single-character or 16-bit integer properties, can be stored in any appropriate type. たとえば、 ulong 型として整数を格納することができ、 PT_STRING8として文字列を格納することができます。For example, integers can be stored as ULONG and strings can be stored as PT_STRING8.

PT_BINARY型を使用して、長さのバイト配列を示します。Use the PT_BINARY type to indicate a counted byte array. この種類のプロパティは、オブジェクトに格納できるデータの型を拡張するのに便利です。This property type is useful for extending the types of data that can be stored in an object. シーケンスで送信されるバイト数とデータの意味に関する前提条件は行われません。Bytes are transmitted in sequence and no assumptions are made about the meaning of the data. クライアント アプリケーションでは、これらのプロパティからデータを読み取る、ときに、データをどのように保存されてから変更することはありません。When a client application reads data out of such a property, the data is unchanged from how it was stored. クライアントでは、Cpu 間でデータを移動するときの交換のために必要なバイトを実行する必要があります。The client must perform any necessary byte swapping when moving data across CPUs.

関連項目See also

MAPI Property OverviewMAPI Property Overview