MAPI オブジェクトおよびプロパティのアクセス許可Permissions for MAPI Objects and Properties

適用されます: OutlookApplies to: Outlook

アクセス許可、または一連の permissable の操作には、MAPI オブジェクトおよびそれらのオブジェクトでサポートされている個々 のプロパティの特性がある場合ができます。Access permission, or the set of permissable operations, can be a characteristic of MAPI objects and of individual properties supported by those objects. オブジェクトへのアクセスは、オブジェクトの親によって決定されます。Object access is determined by an object's parent. メッセージは、そのフォルダーはアクセス許可を決定します。For a message, its folder determines access permissions. メッセージングのユーザーまたは配布リスト、アドレス帳コンテナーはこの決定をなります。For a messaging user or distribution list, its address book container makes this determination. 2 つのフォルダー、メッセージなどのオブジェクトが存在する場合、オブジェクトの 2 つのコピーのアクセス許可が異なる場合ができます。When an object such as a message resides in two folders, the permissions for the two copies of the object can be different.

これらのオブジェクトを使用してクライアントに対するアクセス許可オブジェクトのIMAPISession::OpenEntryの呼び出しで MAPI_BEST_ACCESS フラグを設定することで最高のレベルを要求できます。Clients using these objects can request the highest level of access permitted for the object by setting the MAPI_BEST_ACCESS flag on the IMAPISession::OpenEntry call. オブジェクトを実装するサービス プロバイダーによって、クライアントは、必要なアクセス権のレベルは許可されません。Depending on the service provider implementing the object, the client may or may not be granted the level of access necessary. クライアントは、オブジェクト (PidTagAccess) であるPR_ACCESSプロパティを取得するためにGetPropsメソッドを呼び出すことによって許可されたことをアクセスのレベルを決定できます。Clients can determine the level of access that they were granted by calling the object GetProps method to retrieve the PR_ACCESS (PidTagAccess) property. ただし、サービス プロバイダーは、このプロパティの値を動的に生成する必要があります、ためには、クライアントが必要な場合にのみを取得するをお勧めします。However, because the service provider must dynamically generate the value for this property, it is recommended that clients retrieve it only when necessary.

フォルダー、アドレス帳コンテナー、または配布リストなどのコンテナーに変更ができるかどうかを確認するのには、 PR_ACCESS_LEVEL (PidTagAccessLevel) のプロパティを取得するためにGetPropsメソッドを呼び出します。To determine whether a container such as a folder, address book container, or distribution list allows modification, call its GetProps method to retrieve the PR_ACCESS_LEVEL (PidTagAccessLevel) property. コンテナー レベルのアクセスでは、クライアントで、ユーザー インターフェイスを表示する方法に影響します。Container level access affects clients in terms of how they display their user interfaces. ユーザー インターフェイスの表示と、一般的な実装ではコンテナー内のオブジェクトの実装も影響を受けます。It also impacts the implementers of objects within containers in terms of their user interface display and their general implementation.

特定のプロパティへのアクセスは、MAPI プロパティを所有するオブジェクトの設定、プロパティ スキーマによって決まります。Access to a particular property is determined by the property schema set up by MAPI for the object that owns the property. プロパティ スキーマは、オブジェクトとそのアクセス許可の必須およびオプションのプロパティのセットを指定します。Property schemas specify the set of required and optional properties for an object and their access permission. オブジェクトの親によって決定されるオブジェクトへのアクセスとは異なり、プロパティへのアクセスはグローバルです。Unlike object access which is determined by the object's parent, property access is global. オブジェクトの親のアクセスの要件にかかわらず、すべてのオブジェクトは、スキーマによって決定されたプロパティの同じ権限を持ちます。Every object, regardless of the access requirements of the object's parent, has the same permissions for the property as determined by the schema.

プロパティが読み取り専用の場合は、常にGetPropsまたはOpenPropertyの呼び出しで使用可能なことができます。When a property is read-only, it will always be available with a GetProps or OpenProperty call. ただし、プロパティをサポートするオブジェクトの実装によっては、プロパティとそれを削除するためのDeletePropsメソッドを変更するためのSetPropsメソッドの 2 つの可能な結果があります。However, depending on the implementation of the object supporting the property, there are two possible outcomes for the SetProps method for modifying a property and the DeleteProps method for removing it:

  • 失敗し、MAPI_E_NO_ACCESS を返すFail and return MAPI_E_NO_ACCESS

  • 正常に処理は実行されません。Succeed with no action taken

プロパティとオブジェクト アクセスの取得またはIMAPIPropインターフェイスを継承するIPropDataインターフェイスを使用して設定もできます。Property and object access can also be retrieved or set by using the IPropData interface that inherits from the IMAPIProp interface. MAPI には、メモリ内のデータに基づくIPropDataの実装が用意されています。MAPI provides an implementation of IPropData that is based on data in memory. サービス ・ プロバイダーは、状態オブジェクトのように特定の状況でIMAPIPropを実装するためにIPropDataを使用することができます。 または組み込みのトランザクションのないデータベースを使用している場合。Service providers can use IPropData to implement IMAPIProp in certain circumstances, such as for their status object or if they are using a database that does not have built-in transactions. IPropDataは、ロックし、データのロックを解除する必要がないように、メモリ内でのみ動作します。IPropData works exclusively in memory, making it unnecessary to lock and unlock data.

関連項目See also

MAPI Property OverviewMAPI Property Overview