ScRelocProps

適用対象: Outlook 2013 | Outlook 2016

配列とそのデータがコピーまたは新しい場所に移動された後に 、SPropValue 配列内のポインターを調整します。

プロパティ
ヘッダー ファイル:
Mapidefs.h
実装元:
MAPI
呼び出し元:
クライアント アプリケーションとサービス プロバイダー
SCODE ScRelocProps(
  int cprop,
  LPSPropValue rgprop,
  LPVOID pvBaseOld,
  LPVOID pvBaseNew,
  ULONG FAR * pcb
);

パラメーター

cprop

[in] rgprop パラメーターによって指される配列内のプロパティの数。

rgprop

[in]ポインターを調整する SPropValue 構造体の配列へのポインター。

pvBaseOld

[in] rgprop パラメーターによって指される配列の元のベース アドレスへのポインター。

pvBaseNew

[in] rgprop パラメーターによって指される配列の新しいベース アドレスへのポインター。

Pcb

[in, out] pvBaseNew パラメーターによって示される配列のサイズ (バイト単位) への省略可能なポインター。 NULL でない場合、 pcb パラメーターは pvD パラメーターに格納されているバイト数に設定されます。

戻り値

S_OK

ポインターが正常に調整されました。

MAPI_E_INVALID_PARAMETER

1 つまたは両方のパラメーターが無効であったか、不明なプロパティの種類が検出されました。

注釈

ScRelocProps 関数は、ポインターが調整されるプロパティ値配列が、もともと ScCopyProps 関数の呼び出しと同様に 1 回の呼び出しで割り当てられたことを前提として動作します。 クライアント アプリケーションまたはサービス プロバイダーが、不整合なメモリ ブロックから構築されたプロパティ値を使用している場合は、代わりに ScCopyProps を 使用してプロパティをコピーする必要があります。

ScRelocProps は、SPropValue 配列内のポインターの有効性を維持するために使用されます。 このような配列をディスクに書き込み、ディスクから読み取るときにポインターの有効性を維持するには、次の操作を実行します。

  1. 配列とデータをディスクに書き込む前に、たとえば、pvBaseNew パラメーターが標準値 0 を指す配列で ScRelocProps を呼び出します。

  2. ディスクから配列とデータを読み取った後、手順 1 で使用したのと同じ標準値と等しい pvBaseOld パラメーターを使用して、配列の ScRelocProps を呼び出します。 配列とデータは、1 つの割り当てで作成されたバッファーに読み込む必要があります。

  3. ScRelocProps への pcb パラメーターは省略可能です。

関連項目

MAPIAllocateBuffer

ScCountProps

ScDupPropset

ScRelocNotifications