次の方法で共有


HrAddColumnsEx

適用対象: Outlook 2013 | Outlook 2016

既存のテーブルの先頭に列を追加または移動します。

プロパティ
ヘッダー ファイル:
Mapiutil.h
実装元:
MAPI
呼び出し元:
クライアント アプリケーションとサービス プロバイダー
HRESULT HrAddColumnsEx(
  LPMAPITABLE lptbl,
  LPSPropTagArray lpproptagColumnsNew,
  LPALLOCATEBUFFER lpAllocateBuffer,
  LPFREEBUFFER lpFreeBuffer,
  void (FAR * lpfnFilterColumns)(
  LPSPropTagArray ptaga)
);

パラメーター

lptbl

[in]影響を受ける MAPI テーブルへのポインター。

lpproptagColumnsNew

[in]テーブルの先頭に追加または移動するプロパティのプロパティ タグの配列を含む SPropTagArray 構造体へのポインター。

lpAllocateBuffer

[in]メモリの割り当てに使用する MAPIAllocateBuffer 関数へのポインター。

lpFreeBuffer

[in]メモリを解放するために使用する MAPIFreeBuffer 関数へのポインター。

lpfnFilterColumns

[in]呼び出し元によって提供されるコールバック関数へのポインター。 lpfnFilterColumns パラメーターが NULL に設定されている場合、コールバックは行われません。

ptaga

[in]プロパティが先頭に追加または移動される前に、テーブルに既に存在するプロパティ タグの配列を含む SPropTagArray 構造体へのポインター。 HrAddColumnsEx は、このポインターをパラメーターとして lpfnFilterColumns が指すコールバック関数に渡します。

戻り値

S_OK

呼び出しが成功し、指定した列が移動または追加されました。

注釈

lpproptagColumnsNew パラメーターを使用して HrAddColumnsEx に渡されるプロパティは、IMAPITable::QueryRows メソッドへの後続の呼び出しで公開される最初のプロパティになります。 lpproptagColumnsNew パラメーターで指定されていないテーブル内のプロパティは、追加および移動されたすべてのプロパティの後に公開されます。

QueryRows の呼び出し時にテーブル プロパティが未定義の場合は、プロパティ型PT_NULLとプロパティ識別子PROP_ID_NULLで返されます。

呼び出し側への注意

HrAddColumnsEx 関数を使用すると、呼び出し元はコールバック関数を提供して、テーブルに既に含まれている列をフィルター処理できます(たとえば、文字列をプロパティ型のPT_UNICODEからPT_STRING8に変換するなど)。 HrAddColumnsEx は、以前にパラメーターとして設定された既存の列へのポインターをコールバック関数に渡します。 コールバック関数は、プロパティ タグ配列内のデータを変更できますが、新しいタグを追加することはできません。

HrAddColumnsEx は、コールバック関数が指定されている場合に最初に呼び出し、指定された列を追加または移動し、最後に IMAPITable::SetColumns を呼び出します。

lpAllocateBufferlpFreeBuffer の入力パラメーターは、それぞれ MAPIAllocateBuffer 関数と MAPIFreeBuffer 関数を指します。 HrAddColumnsEx に渡されるポインターの正確な値は、呼び出し元がクライアント アプリケーションかサービス プロバイダーかによって異なります。 クライアントは、指定した名前を持つ MAPI 関数へのポインターを渡します。 サービス プロバイダーは、初期化呼び出しで受信したポインター、または IMAPISupport::GetMemAllocRoutines メソッドを呼び出して取得したポインターを渡します。

関連項目

IMAPITable::QueryColumns