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 を取得するには、次の手順に従います。
メッセージ サービス管理テーブルを取得するには、 IMsgServiceAdmin::GetMsgServiceTable メソッドを呼び出します。
メッセージ サービスを表す行を見つけるには、メッセージ サービスの名前を 持つPR_SERVICE_NAME (PidTagServiceName) プロパティと一致するテーブルに制限を設定します。
サービスの PR_SERVICE_UID (PidTagServiceUid) プロパティを取得します。
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 メソッドを使用して、サービスをプロファイルに追加します。 |