Share via


メッセージ クラスの選択

適用対象: Outlook 2013 | Outlook 2016

MAPI メッセージ クラスで説明されているように、メッセージ クラスは、カスタム メッセージの種類とフォーム サーバー間のリレーションシップを確立するために重要です。 幸いなことに、メッセージ クラスの文字列を選択するのはかなり簡単です。 メッセージ クラスのメッセージ クラス文字列は任意の文字列ですが、次の規則を使用する必要があります。

  • 文字列は、 PR_MESSAGE_CLASS (PidTagMessageClass) プロパティのドキュメントで説明されているすべての規則を満たす必要があります。 重要なのは、文字列は完全に ANSI 文字で構成され、256 文字未満である必要があります。

  • フォーム サーバーが既存のフォーム サーバーから派生している場合、または既存のフォーム サーバーの拡張機能である場合は、フォームの基になるフォーム サーバーのメッセージ クラス文字列にピリオドと別の単語を追加して、メッセージ クラス文字列を形成する必要があります。 たとえば、会議のスケジュールを変更するフォームを実装する場合、フォームは会議をスケジュールするための既存のフォームに基づいています。 会議スケジュール フォームのメッセージ クラス文字列が "IPM。会議" の場合、メッセージ クラスの文字列は "IPM" になる可能性があります。Meeting.Reschedule"

  • フォームが既存のフォームに基づいていない場合でも、メッセージ クラスの文字列は、フォームが人または別のアプリケーションによって受信されることを意図しているかどうかに応じて、"IPM" または "IPC" プレフィックスで始まる必要があります。 "IPM" は、通常はユーザーの受信トレイに入る対人メッセージを指定し、"IPC" は通常、ユーザーの受信トレイに配信されないプロセス間通信メッセージを指定します。

  • メッセージ クラスが人間が読み取り可能であることを意図している場合、メッセージ クラスの文字列は "IPM" で始まる必要があります。通常、メッセージ クラスは、プレーン テキスト、HTML、またはリッチ テキスト形式 (RTF) データを含むプロパティを使用する場合、人間が読み取り可能と見なされます。 フォームで PR_BODY (PidTagBody) プロパティを使用する場合は、ほぼ確実に "IPM" メッセージ クラス文字列を使用する必要があります。 たとえば、発注書のフォームを実装していて、organizationがマネージャーによって発注書を承認する必要がある場合、メッセージ クラスの文字列は "IPM" になる可能性があります。Purchase_Order"。 パブリック フォルダーまたはパブリック フォルダー アプリケーションで使用するように設計されたフォームは、実際にはユーザーのメール アドレスにアドレス指定されていない場合でも、ユーザーが読み取るため、通常は対人と見なされます。 パブリック フォルダー メッセージ クラスの一般的なプレフィックスは "IPM.Post" です。

  • メッセージ クラスがユーザーではなく別のアプリケーションによって受信されることを意図している場合、メッセージ クラスの文字列は "IPC" で始まる必要があります。たとえば、ユーザーがメーリング リストを自動的にサブスクライブできるようにするフォームを実装する場合、メッセージ クラスの文字列は "IPC" になります。サブスクライブ"。

  • メッセージ クラスの文字列は、ピリオドで終わることはありません。

メッセージ クラス文字列は、次のような MessageClass エントリのフォーム構成ファイルの [説明] セクションに配置する必要があります。

MessageClass=IPM.Meeting.Reschedule

適切なメッセージ クラス文字列を選択したら、その文字列のクラス識別子を生成する必要があります。 クラス識別子は、Visual Studio に含まれている GUID の作成 コマンドを使用して生成できます。 クラス識別子は、次のような MessageClass エントリと共に、フォーム構成ファイルの CLSID エントリに配置する必要があります。

CLSID={88FFF551-B8C5-11ce-8DE0-00AA0060D242}

もちろん、クラス識別子はほぼ確実に異なります。 詳細については、「 フォーム構成ファイルの作成」を参照してください。

フォームがユーザーのコンピューターにインストールされている場合、インストール プロセス (セットアップ プログラムか他のものか) は、クラス識別子のレジストリの *HKEY_CLASSES_ROOT\CLSID* セクションにレジストリ エントリを作成する必要があります。 このエントリは、メッセージ クラス文字列に設定する必要があります。 たとえば、上記のクラス識別子の例では、次のようなレジストリ エントリを作成します。

HKEY_CLASSES_ROOT\CLSID\{88FFF551-B8C5-11ce-8DE0-00AA0060D242}="IPM.Meeting.Reschedule"

詳細については、「 ライブラリへのフォームのインストール」を参照してください。

関連項目

MAPI フォーム サーバーの開発