ValidateParms
適用対象: Outlook 2013 | Outlook 2016
内部関数を呼び出して、クライアント アプリケーションがサービス プロバイダーに渡したパラメーターをチェックします。
プロパティ | 値 |
---|---|
ヘッダー ファイル: |
Mapival.h |
実装元: |
MAPI |
呼び出し元: |
サービス プロバイダー |
HRESULT ValidateParms(
METHODS eMethod,
LPVOID First
);
パラメーター
eMethod
[in]検証するメソッドを列挙によって指定します。
First
[in]スタック上の最初の引数へのポインター。
戻り値
S_OK
すべてのパラメーターが有効です。
MAPI_E_CALL_FAILED
1 つ以上のパラメーターが無効です。
注釈
MAPI とサービス プロバイダーの間で渡されるパラメーターは正しいと見なされ、 CheckParms マクロを使用したデバッグ検証のみが実行されます。 プロバイダーは、クライアント アプリケーションによって渡されるすべてのパラメーターをチェックする必要がありますが、クライアントは MAPI パラメーターとプロバイダー パラメーターが正しいと想定する必要があります。 戻り値をテストするには、 HR_FAILED マクロを使用します。
ValidateParms は、呼び出し元のコードが C か C++ かに応じて異なる呼び出し方法で呼び出されます。 C++ は、 と 呼ばれる暗黙的 なパラメーターを各メソッド呼び出しに渡します。これは C で明示的になり、オブジェクトのアドレスになります。 最初のパラメーター eMethod は、検証対象のインターフェイスとメソッドから作成された列挙子であり、スタックで検索するパラメーターを指定します。 2 番目のパラメーターは、C と C++ では異なります。 C++ では First と呼ばれ、検証されるメソッドの最初のパラメーターです。 C 言語の 2 番目のパラメーター ppThis は、常にオブジェクト ポインターであるメソッドへの最初のパラメーターのアドレスです。 どちらの場合も、2 番目のパラメーターはメソッドのパラメーター リストの先頭のアドレスを指定し、 eMethod に基づいてスタックを下に移動し、パラメーターを検証します。
IMAPITable や IMAPIProp などの一般的なインターフェイスを実装するプロバイダーは、すべてのプロバイダー間で一貫性を確保するために、ValidateParms 関数を使用してパラメーターを常にチェックする必要があります。 必要に応じて、一部の複合パラメーター型に対して追加のパラメーター検証関数が定義されています。 次の関数については、リファレンス トピックを参照してください。
- FBadColumnSet
- FBadEntryList
- FBadProp
- FBadProp
- FBadRestriction
- FBadRestriction
- FBadRglpszW
- FBadRow
- FBadRowSet
- FBadSortOrderSet
継承されたメソッドは、継承元のインターフェイスと同じパラメーター検証を使用します。 たとえば、 IMessage と IMAPIProp のパラメーター チェックは同じである必要があります。