IMsgServiceAdmin::CreateMsgService

適用対象: Outlook 2013 | Outlook 2016

非推奨: IMsgServiceAdmin2::CreateMsgServiceEx の使用をお勧めします。 現在のプロファイルにメッセージ サービスを追加します。

HRESULT CreateMsgService(
  LPSTR lpszService,
  LPSTR lpszDisplayName,
  ULONG_PTR ulUIParam,
  ULONG ulFlags    
);

パラメーター

lpszService

[in]追加するメッセージ サービスの名前へのポインター。 このメッセージ サービス名は、MapiSvc.inf ファイルの [サービス] セクションに表示する必要があります。

lpszDisplayName

[in]追加するメッセージ サービスの表示名へのポインター。 メッセージ サービスが MapiSvc.inf ファイルのPR_DISPLAY_NAME (PidTagDisplayName) プロパティを設定している場合、lpszDisplayName パラメーターは無視されます。

ulUIParam

[in]このメソッドが表示するダイアログ ボックスまたはウィンドウの親ウィンドウへのハンドル。

ulFlags

[in]メッセージ サービスのインストール方法を制御するフラグのビットマスク。 次のフラグを設定できます。

MAPI_UNICODE

lpszService パラメーターと lpszDisplayName パラメーターは LPWSTR にキャストし、Unicode 文字列として解釈する必要があります。

SERVICE_NO_RESTART_WARNING

プロファイルに新しいメッセージ サービスを追加する場合、MAPI サブシステムは、さまざまな状況と条件に基づいて、多くの場合、この操作に Outlook の再起動が必要であると判断します。 SERVICE_NO_RESTART_WARNING フラグが含まれず、SERVICE_UI_ALWAYSフラグとSERVICE_UI_ALLOWEDフラグに基づいて UI が許可され、少なくとも 1 つのプロセスが現在のプロファイルにログオンしている場合、この関数は「これらの変更を有効にするには Outlook を再起動する必要があります」というメッセージを表示します。SERVICE_NO_RESTART_WARNING フラグを含めると、その警告メッセージの表示が抑制されます。

SERVICE_UI_ALLOWED

メッセージ サービス構成 UI は、必要に応じて許可されます。

SERVICE_UI_ALWAYS

メッセージ サービスには、その構成プロパティ シートが表示されます。

戻り値

S_OK

�ʘb���������A�\�������l�܂��͒l���Ԃ���܂��B

MAPI_E_NOT_FOUND

メッセージ サービス名が MapiSvc.inf の [サービス] セクションにありません。

注釈

IMsgServiceAdmin::CreateMsgService メソッドは、メッセージ サービスを現在のプロファイルに追加します。 CreateMsgService は、メッセージ サービスのエントリ ポイント関数を呼び出して、サービス固有の構成タスクを実行します。 SERVICE_UI_ALLOWED フラグが ulFlags パラメーターに設定されている場合、インストールされているメッセージ サービスはプロパティ シートを表示して、ユーザーが設定を構成できるようにします。

MapiSvc.inf ファイルには、メッセージ サービスを構成するプロバイダーの一覧と、それぞれのプロパティが含まれています。 CreateMsgService は、最初にメッセージ サービスの新しいプロファイル セクションを作成し、そのサービスのすべての情報を MapiSvc.inf ファイルからプロファイルにコピーし、各プロバイダーの新しいセクションを作成します。

すべての情報が MapiSvc.inf からコピーされると、メッセージ サービスのエントリ ポイント関数が ulContext パラメーターに設定されたMSG_SERVICE_CREATE値で呼び出されます。 CreateMsgService メソッドの ulFlags パラメーターで SERVICE_UI_ALLOWED フラグが設定されている場合は、メッセージ サービスのエントリ ポイント関数が呼び出されたときに ulUIParam パラメーターと ulFlags パラメーターの値も渡されます。 サービス プロバイダーは、ユーザーがメッセージ サービスを構成できるように、構成プロパティ シートを表示する必要があります。

呼び出し側への注意

CreateMsgService は、プロファイルに追加されたメッセージ サービスの MAPIUID 構造体を返しません。

作成されたメッセージ サービスの MAPIUID を取得するには、次の手順に従います。

  1. メッセージ サービス管理テーブルを取得するには、 IMsgServiceAdmin::GetMsgServiceTable メソッドを呼び出します。

  2. メッセージ サービスを表す行を見つけるには、メッセージ サービスの名前を 持つPR_SERVICE_NAME (PidTagServiceName) プロパティと一致するテーブルに制限を設定します。

  3. サービスの PR_SERVICE_UID (PidTagServiceUid) プロパティを取得します。

  4. lpUid パラメーターの PR_SERVICE_UID プロパティの値を IMsgServiceAdmin::ConfigureMsgService メソッドに渡して、サービスを構成します。

注意

MAPI サブシステムのMicrosoft Outlook 2010実装はMAPI_UNICODEをサポートしていないため、使用すると失敗します。

重要

ulFlags SERVICE_NO_RESTART_WARNINGは、現在使用しているダウンロード可能なヘッダー ファイルに定義されていない可能性があります。その場合は、次の値を使用してコードに追加できます。#define SERVICE_NO_RESTART_WARNING 0x00000080

MFCMAPI リファレンス

MFCMAPI のサンプル コードについては、次の表を参照してください。

ファイル 関数 コメント
MAPIProfileFunctions.cpp
HrAddServiceToProfile
MFCMAPI では 、IMsgServiceAdmin::CreateMsgService メソッドを使用して、サービスをプロファイルに追加します。

関連項目

IMsgServiceAdmin : コードサンプルとしての IUnknown MFCMAPI