MAPI プロパティの種類の概要MAPI property type overview

適用対象: Outlook 2013 | Outlook 2016Applies to: Outlook 2013 | Outlook 2016

プロパティの種類は、mapidefs.h で MAPI によって定義される定数です。プロパティ値の基になるデータ型を示す H ヘッダーファイル。Property types are constants defined by MAPI in the MAPIDEFS.H header file that indicate the underlying data type of a property value. すべてのプロパティ (MAPI、クライアントアプリケーション、またはサービスプロバイダーによって定義されているかどうか) は、次のいずれかの種類を使用します。All properties, whether they are defined by MAPI, by client applications, or by service providers, use one of these types.

プロパティの種類は、プロパティタグに使用する名前付け規則に似ています。Property types follow a similar naming convention to the one used for property tags. 多くのプロパティの種類には、単一値と複数値の両方のバージョンがあります。Many property types have both a single-value and multiple-value version. 単一の値のプロパティには、1つの整数または文字列などの1つの型の値が含まれています。Single valued properties contain one value of its type such as a single integer or character string. 単一の値のプロパティを表す定数は、次の2つの部分で構成されます。プレフィックス PT_ と、LONG または STRING8 などの実際の型を表す文字列。The constant used to represent a single value property has two parts: the prefix PT_ and a string describing the actual type, such as LONG or STRING8.

複数値プロパティには、その型の複数の値が含まれています。Multiple-value properties contain more than one value of its type. OLE バリアント型 (variant) の配列とは異なり、複数値プロパティのすべての値は同じ型です。Unlike OLE variant arrays, every value in a multivalued property is of the same type. 複数値プロパティを表すために使用される定数は、MV_FLAG フラグと、それに対応する基本型を表す単一値定数を組み合わせて作成します。The constant used to represent multivalued properties is created by combining the MV_FLAG flag with the corresponding single value constant representing the base type. 次の3つの部分があります。プレフィックス PT_ の後に MV_ が続き、その後に型を記述する文字列が続きます。There are three parts: the prefix PT_ followed by MV_ followed by a string that describes the type. たとえば、複数の整数を含むプロパティの型は PT_MV_LONG で、複数の文字列は PT_MV_STRING8 です。For example, the type for a property containing multiple integers is PT_MV_LONG and for multiple character strings is PT_MV_STRING8.

次の図は、PT_MV_LONG 型のプロパティとして、複数値の整数を記述するspropvalue構造体の構造を示しています。The following illustration shows the structure of an SPropValue structure to describe a multiple-value integer, a property of type PT_MV_LONG. Valueメンバーは、プロパティの整数値の数と、それらの値の配列へのポインターを含むように展開されています。The Value member is expanded to include a count of the number of integer values in the property and a pointer to an array of those values.

複数値プロパティMultiple-value properties

複数値プロパティMultiple-value properties

複数値プロパティのサポートはオプションですが、mapi 準拠のコンポーネント間の相互作用を可能にするため、クライアントとサービスプロバイダーは両方の種類のプロパティをサポートすることをお勧めします。Although support for multiple-value properties is optional, MAPI recommends that clients and service providers support both types of properties because doing so enables greater interaction between MAPI-compliant components.

次の図は、さまざまなプロパティの種類の定数を示しています。これは、 spropvalue構造に格納されている場所を示しています。The following illustration lists all of the different property type constants, showing where they are stored in an SPropValue structure. メンバーのサイズは、特定の型によって異なります。The size of the Value member is dependent on the particular type. 単一値の型には、複数の値が対応しているわけではないことに注意してください。Notice that not all of the single-value types have multiple-value equivalents.

プロパティ タイプ定数Property type constants

プロパティの種類定数Property type constants

プロパティを使用するクライアントおよびサービスプロバイダーは、次の2つの手順に従う必要があります。Clients and service providers working with a property need to follow two steps:

  1. プロパティが利用可能かどうかを判断します。Determine if the property is available or unavailable.

  2. 可能な場合は、プロパティの値を取得します。If available, retrieve the property's value.

クライアントまたはサービスプロバイダーは、プロパティの存在のみをチェックする必要がある場合があります。その他の場合は、特定の値を確認する必要があります。Sometimes a client or service provider need only check for the existence of a property; other times it is necessary to check for a specific value. たとえば、トランスポートプロバイダーには、 _PR SEND_RICH_INFO (PidTagSendRichInfo) プロパティを処理するための3つの異なるコースがあります。これは、メッセージを送信する必要があるかどうかを示すブール値です。書式付きテキスト。For example, transport providers have three different courses of action for processing the PR_SEND_RICH_INFO (PidTagSendRichInfo) property, a Boolean value that indicates whether or not a message should be transmitted with formatted text. PR_SEND_RICH_INFOが TRUE に設定されている場合、トランスポートプロバイダーは書式設定されたテキストを送信します。If PR_SEND_RICH_INFO is set to TRUE, the transport provider transmits the formatted text. FALSE に設定されている場合は、書式設定されたテキストは送信前に破棄されます。If it is set to FALSE, the formatted text is discarded before transmission. PR_SEND_RICH_INFOが使用できない場合、トランスポートプロバイダーは、特定のプロバイダー向けの既定のアクションの実行に従います。If PR_SEND_RICH_INFO is unavailable, the transport provider follows its default course of action, whatever that is for the particular provider.

MAPI は、プロパティの種類が不明な場合にクライアントまたはサービスプロバイダーがプロパティを取得するために使用できる特別なプロパティの種類 PT_UNSPECIFIED を定義します。プロパティを取得するときに、その型を事前に理解していない場合、クライアントまたはサービスプロバイダーは、オブジェクトのimapiprop:: GetPropsメソッドを呼び出し、プロパティの識別子と PT_UNSPECIFIED プロパティの種類で構成されたプロパティタグを渡します。MAPI defines a special property type, PT_UNSPECIFIED, that a client or service provider can use to retrieve a property when the property type is unknown.To retrieve a property without advance knowledge of its type, a client or service provider calls an object's IMAPIProp::GetProps method and passes a property tag made up of the property's identifier and the PT_UNSPECIFIED property type. GetPropsは、プロパティのspropvalue構造を返します。 PT_UNSPECIFIED は適切な型に置き換えられます。GetProps returns an SPropValue structure for the property, replacing PT_UNSPECIFIED with the appropriate type. GetPropsを実装するサービスプロバイダーは、PT_UNSPECIFIED をサポートするために必要です。Service providers implementing GetProps are required to support PT_UNSPECIFIED.

一部の MAPI オブジェクトは、自身のオブジェクトであるプロパティをサポートしています。Some MAPI objects support properties that are themselves objects. オブジェクトのプロパティの型は PT_OBJECT です。Object properties have the type PT_OBJECT. これらのプロパティにアクセスするには、 imapiprop:: GetPropsを使用するのではなく、通常、クライアントおよびサービスプロバイダーは、 imapiprop:: openpropertyメソッドをユーザーとして指定し、access の適切なインターフェイスを指定するか、またはオブジェクトに対するメソッドを指定します。プロパティをサポートします。Instead of using IMAPIProp::GetProps to access these properties, clients and service providers typically user either the IMAPIProp::OpenProperty method, specifying the appropriate interface for access, or a method on the object supporting the property.

object プロパティの値にアクセスするには、オブジェクトのインターフェイスの1つを使用する必要があるため、 GetPropsは適切ではありません。Because accessing the value of an object property involves using one of the interfaces for the object, GetProps is inappropriate. GetPropsでは、発信者はspropvalue構造を使用してプロパティの値にアクセスします。With GetProps, the caller accesses a property's value through an SPropValue structure. imapiprop:: openpropertyを使用すると、呼び出し元は、オブジェクトにアクセスできるインターフェイスへのポインターを取得します。With IMAPIProp::OpenProperty, the caller retrieves a pointer to an interface that can access the object. openpropertyは、常にオブジェクトプロパティを取得するために使用できます。OpenProperty can always be used to retrieve an object property. その他のオプションは、オブジェクトのメソッドを呼び出すことはできません。すべての object プロパティで使用することはできません。The other option, calling a method on the object, is not available with every object property.

たとえば、すべてのフォルダーは、階層テーブルと contents テーブルという2つのテーブルをサポートしています。For example, every folder supports two tables, a hierarchy table and a contents table. これらのテーブルは、フォルダーのプロパティです。これらのプロパティタグは、 PR_CONTAINER_HIERARCHY (PidTagContainerHierarchy) およびPR_CONTAINER_CONTENTS (PidTagContainerContents) です。These tables are properties of the folder; their property tags are PR_CONTAINER_HIERARCHY (PidTagContainerHierarchy) and PR_CONTAINER_CONTENTS (PidTagContainerContents). テーブルは、access のIMAPITableインターフェイスを必要とするオブジェクトです。Tables are objects that require the IMAPITable interface for access. クライアントは、フォルダーのIMAPIContainer:: GetHierarchyTableメソッドを呼び出して、階層テーブルにアクセスします。フォルダーのIMAPIContainer:: getcontentstableメソッドを使用して、コンテンツテーブルにアクセスします。または、フォルダーのimapiprop:: openpropertyどちらかのテーブルにアクセスするメソッド。A client can call the folder's IMAPIContainer::GetHierarchyTable method to access the hierarchy table, the folder's IMAPIContainer::GetContentsTable method to access the contents table, or the folder's IMAPIProp::OpenProperty method to access either table. openpropertyを呼び出すために、クライアントはプロパティのプロパティタグを最初のパラメーターとして渡し、2番目のパラメーターとしてのアクセスに使用するインターフェイスのインターフェイス識別子を渡します。To call OpenProperty, a client passes the property tag for the property as the first parameter and an interface identifier for the interface to be used for access as the second parameter. これらのパラメーターは、 PR_CONTAINER_HIERARCHYまたはPR_CONTAINER_CONTENTSIID_IMAPITableになります。These parameters would be PR_CONTAINER_HIERARCHY or PR_CONTAINER_CONTENTS and IID_IMAPITable.

単一値と複数値のプロパティの種類の完全な一覧については、「プロパティの種類」を参照してください。For a complete list of the single-value and multiple-value property types, see Property Types.

関連項目See also