IAddrBook
COM公式ドキュメント
使用しないでください。(IAddrBook)
メソッド 18
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| cbEntryID | DWORD | in | lpEntryID が指すエントリ ID のバイト数を指定する。 |
| lpEntryID | ENTRYID* | inout | 開くオブジェクトを識別するエントリ ID へのポインタである。NULL を渡すとアドレス帳のルートコンテナを開く。 |
| lpInterface | GUID* | inout | 返されるオブジェクトに対して要求するインターフェイスの IID へのポインタである。NULL の場合は既定のインターフェイスを返す。 |
| ulFlags | DWORD | in | オープン動作を制御するフラグを指定する。 |
| lpulObjType | DWORD* | inout | 開かれたオブジェクトの種類 (MAPI_FOLDER、MAPI_MESSAGE 等) を受け取る変数へのポインタである。 |
| lppUnk | IUnknown** | out | 開かれたオブジェクトへのインターフェイスポインタを受け取る変数へのポインタである。 |
2つのエントリ識別子を比較します。
| cbEntryID1 | DWORD | in | lpEntryID1 パラメーターが指すエントリ識別子のバイト数を指定する ULONG 型の値。 |
| lpEntryID1 | ENTRYID* | inout | 比較する最初のエントリ識別子を指定する ENTRYID 型の変数へのポインター。 |
| cbEntryID2 | DWORD | in | lpEntryID2 パラメーターが指すエントリ識別子のバイト数を指定する ULONG 型の値。 |
| lpEntryID2 | ENTRYID* | inout | 比較する最初のエントリ識別子を指定する ENTRYID 型の変数へのポインター。 |
| ulFlags | DWORD | in | 予約済み。0 に設定する必要があります。 |
| lpulResult | DWORD* | inout | 比較結果を受け取る ULONG 型の変数へのポインター。2つのエントリ識別子が同じオブジェクトを参照している場合、lpulResult の内容は TRUE に設定され、そうでない場合は FALSE に設定されます。 |
戻り値
HRESULT
通知を受け取るために、呼び出し元を Windows アドレス帳 (WAB) に登録します。
| cbEntryID | DWORD | in | 予約済み。0 に設定する必要があります。 |
| lpEntryID | ENTRYID* | inout | 予約済み。NULL に設定する必要があります。 |
| ulEventMask | DWORD | in | イベントマスクを指定する ULONG 型の値。fnevObjectModified に設定します。その他のイベントマスクはすべて拒否されます。 |
| lpAdviseSink | IMAPIAdviseSink* | in | 通知を送信するために Windows アドレス帳 (WAB) が呼び出すオブジェクトを指定する IUnknown インターフェイスへのポインター。 |
| lpulConnection | DWORD* | inout | Windows アドレス帳 (WAB) が返す接続番号を受け取る ULONG 型の変数へのポインター。IAddrBook::Unadvise を呼び出すときにこの番号を使用します。 |
戻り値
HRESULT
解説(Remarks)
現時点では、Windows アドレス帳 (WAB) はストア内の全般的な変更に対する通知のみを提供します。クライアントは、エントリ識別子ごとに提供される通知を登録することはできません。Windows アドレス帳 (WAB) ストアが変更されると、Windows アドレス帳 (WAB) はこの関数に渡された lpAdviseSink ポインターに対して IMAPIAdviseSink::OnNotify メソッドを呼び出します。
**OnNotify メソッドに渡される NOTIFICATION 構造体には、次の有効なメンバーがあります。
<![CDATA[Notification.ulEventType = fnevObjectModified
Notification.info.obj.ulObjType = MAPI_ADDRBOOK]]>
構造体内のその他のメンバーはすべて NULL またはゼロになります。クライアントは、この通知を UI の更新にのみ使用する必要があります。Windows アドレス帳 (WAB) 内の個々のオブジェクトへの変更に関する詳細情報は、現在利用できません。
通知に関して、呼び出し元を Windows アドレス帳 (WAB) から登録解除します。
| ulConnection | DWORD | in | 対応する IAddrBook::Advise の呼び出しが返した接続番号を指定する ULONG 型の値。 |
戻り値
HRESULT
1回限り (one-off) のアドレスのエントリ識別子を作成します。
| lpszName | CHAR* | inout | 受信者の表示名を指定する文字列へのポインター。lpszName パラメーターは NULL にすることができます。 | ||||||
| lpszAdrType | CHAR* | inout | FAX や SMTP など、受信者のアドレスの種類を指定する文字列へのポインター。lpszAdrType パラメーターを NULL にすることはできません。 | ||||||
| lpszAddress | CHAR* | inout | 受信者のアドレスを指定する文字列へのポインター。lpszAddress パラメーターを NULL にすることはできません。 | ||||||
| ulFlags | DWORD | in | 1回限り (one-off) の受信者に影響するフラグのビットマスクを指定する ULONG 型の値。次のフラグは Windows アドレス帳 (WAB) で有効です。
| ||||||
| lpcbEntryID | DWORD* | inout | lppEntryID パラメーターが指すエントリ識別子のバイト数を指定する ULONG 型の変数へのポインター。 | ||||||
| lppEntryID | ENTRYID** | inout | 1回限り (one-off) の受信者のエントリ識別子を受け取る ENTRYID 型の変数へのポインターのアドレス。 |
戻り値
HRESULT
ユーザーが新しいエントリを作成できる空のダイアログボックスを表示します。
| ulUIParam | DWORD | in | ダイアログボックスの親ウィンドウハンドルを指定する ULONG_PTR 型の値。 |
| ulFlags | DWORD | in | 予約済み。0 に設定する必要があります。 |
| cbEIDContainer | DWORD | in | lpEIDContainer のサイズを指定する ULONG 型の値。 |
| lpEIDContainer | ENTRYID* | inout | 新しいアドレスを作成するコンテナーのエントリ識別子を指定する ENTRYID 型の変数へのポインター。このパラメーターの値が NULL の場合、メソッドはルートコンテナーにエントリを作成します。これは NewEntry の MAPI 実装とは異なる点に注意してください。 |
| cbEIDNewEntryTpl | DWORD | in | 作成するオブジェクトを決定するために使用されるテンプレートエントリ識別子を指定する ULONG 型の値。 |
| lpEIDNewEntryTpl | ENTRYID* | inout | 作成するオブジェクトを決定するために使用されるテンプレートエントリ識別子を指定する ENTRYID 型の変数へのポインター。 |
| lpcbEIDNewEntry | DWORD* | inout | lppEIDNewEntry の内容の返されるサイズを指定する ULONG 型の変数へのポインター。 |
| lppEIDNewEntry | ENTRYID** | inout | 新しいエントリの返されるエントリ識別子を受け取る ENTRYID 型の変数へのポインターのアドレス。 |
戻り値
HRESULT
解説(Remarks)
ダイアログボックスを一切表示せずに Windows アドレス帳 (WAB) に新しいエントリを作成するには、CreateEntry を使用します。cbEIDNewEntryTpl と lpEIDNewEntryTpl は、作成するオブジェクトの種類を定義するテンプレートエントリ識別子です。テンプレートエントリ識別子を取得するには、任意の Windows アドレス帳 (WAB) コンテナーを開き、IMAPIProp::GetProps を呼び出してコンテナーから PR_DEF_CREATE_MAILUSER または PR_DEF_CREATE_DL プロパティを要求します。結果として得られるバイナリプロパティが、対応するテンプレート識別子です。
部分的な受信者リストを完全なアドレスに解決します。
| ulUIParam | UINT_PTR | in | 親ウィンドウハンドルを指定する ULONG_PTR 型の値。 | ||||||||||||||||||
| ulFlags | DWORD | in | 動作に影響するフラグを指定する ULONG 型の値。
| ||||||||||||||||||
| lpszNewEntryTitle | CHAR* | inout | IAddrBook::NewEntry ダイアログボックスのタイトルを指定する文字列へのポインター。 | ||||||||||||||||||
| lpAdrList | ADRLIST* | inout | 照合するプロパティリストを含むアドレスリストを指定する ADRLIST 型の変数へのポインター。出力時に、lpAdrList は解決された受信者のアドレスリストを含む変数へのポインターを受け取ります。 |
戻り値
HRESULT
| 値 | 説明 |
|---|---|
| S_OK | 名前解決処理が成功しました。 |
| MAPI_E_AMBIGUOUS_RECIP | lpAdrList パラメーター内の少なくとも1つの受信者が、アドレス帳内の複数のエントリと一致しました。通常、この値は MAPI_DIALOG フラグが設定されておらず、ダイアログボックスの表示が禁止されている場合に返されます。 |
| MAPI_E_NOT_FOUND | lpAdrList パラメーター内の少なくとも1つの受信者を解決できません。通常、この値は MAPI_DIALOG フラグが設定されておらず、ダイアログボックスの表示が禁止されている場合に返されます。 |
解説(Remarks)
ResolveName は、あいまいな一致が見つかった場合に、オプションでダイアログボックスを表示します。ResolveName は lpAdrList で渡されたアドレスリストを走査し、未解決の名前をすべて見つけて解決し、適切に変更されたアドレスリストを返します。渡すアドレスリストは、IAddrBook::Address メソッドを使用して作成されたリストにすることができます。
受信者があいまいで、MAPI_DIALOG フラグが指定されていない場合、ResolveName は MAPI_E_AMBIGUOUS_RECIPIENT を返します。
ADRLIST 内の ADRENTRY 項目は、AllocateMore で割り当てるのではなく、個別に割り当てる必要があります。
ResolveName がエントリを置き換えるとき、ADRENTRY は FreeBuffer の動作によって解放されます。 新しいエントリは AllocateMore によって割り当てられます。
IAddrBook::Address は、共通のアドレス帳ダイアログボックスを表示します。
| lpulUIParam | DWORD* | inout | ダイアログボックスの親ウィンドウのハンドルを指定する ULONG_PTR 型の変数へのポインター。入力時には、常にウィンドウハンドルを渡す必要があります。出力時に、lpAdrParms パラメーターの ADRPARM 構造体に DIALOG_SDI フラグが設定されている場合、モードレスダイアログボックスのウィンドウハンドルが返されます。 |
| lpAdrParms | ADRPARM* | inout | アドレス指定ダイアログボックスの表示と動作を指定する ADRPARM 型の変数へのポインター。 |
| lppAdrList | ADRLIST** | inout | 現在の受信者リストを指定する ADRLIST 型の変数へのポインターのアドレス。出力時に、lppAdrList は IAddrBook::Address が格納される ADRLIST へのポインターのアドレスを受け取ります。ユーザーは入力時に lppAdrList を NULL に設定できます。 |
戻り値
HRESULT
解説(Remarks)
アドレス指定ダイアログボックスの動作は、lpAdrParms 内のフラグとパラメーターによって指定されます。Windows アドレス帳 (WAB) は、MAPI の Address メソッドの一部のカスタマイズ機能をサポートしていません。また、Windows アドレス帳 (WAB) は MAPI の送信オプションダイアログボタンもサポートしていません。
Windows アドレス帳 (WAB) 内の特定のエントリの詳細を表示し、編集を可能にするダイアログボックスを表示します。
| lpulUIParam | UINT_PTR* | inout | 返されるダイアログボックスの、返される親ウィンドウハンドルを受け取る ULONG_PTR 型の変数へのポインター。 |
| lpfnDismiss | LPFNDISMISS | in | DISMISSMODELESS 関数ポインター。この関数は、モードレスダイアログボックスが閉じられるときに呼び出されます。実装されていません。 |
| lpvDismissContext | void* | inout | 実装されていません。 |
| cbEntryID | DWORD | in | lpEntryID のサイズを指定する ULONG 型の値。 |
| lpEntryID | ENTRYID* | inout | 詳細を表示するエントリのエントリ識別子を指定する ENTRYID 型の変数へのポインター。 |
| lpfButtonCallback | LPFNBUTTON | in | Windows アドレス帳 (WAB) ではサポートされていません。NULL にする必要があります。 |
| lpvButtonContext | void* | inout | Windows アドレス帳 (WAB) ではサポートされていません。NULL にする必要があります。 |
| lpszButtonText | CHAR* | inout | Windows アドレス帳 (WAB) ではサポートされていません。NULL にする必要があります。 |
| ulFlags | DWORD | in | Windows アドレス帳 (WAB) ではサポートされていません。NULL にする必要があります。 |
戻り値
HRESULT
解説(Remarks)
Windows アドレス帳 (WAB) はボタンコールバックをサポートしていません。プロパティシートは、IWABExtInit および IShellPropSheetExt Interface インターフェイスを通じて拡張できます。
このメソッドは実装されていません。(IAddrBook::RecipOptions)
| ulUIParam | DWORD | in | 実装されていません。 |
| ulFlags | DWORD | in | 実装されていません。 |
| lpRecip | ADRENTRY* | inout | 実装されていません。 |
このメソッドは実装されていません。(IAddrBook::QueryDefaultRecipOpt)
| lpszAdrType | CHAR* | inout | 実装されていません。 |
| ulFlags | DWORD | in | 実装されていません。 |
| lpcValues | DWORD* | inout | 実装されていません。 |
| lppOptions | SPropValue** | inout | 実装されていません。 |
既定の Windows アドレス帳 (WAB) コンテナーのエントリ識別子を返します。
| lpcbEntryID | DWORD* | inout | 返されるエントリ識別子のサイズを受け取る ULONG 型の変数へのポインター。 |
| lppEntryID | ENTRYID** | inout | 既定の Windows アドレス帳 (WAB) コンテナーの、返されるエントリ識別子を受け取る ENTRYID 型の変数へのポインターのアドレス。 |
戻り値
HRESULT
解説(Remarks)
Internet Explorer 4 以前のバージョンの Windows アドレス帳 (WAB) では、既定の Windows アドレス帳 (WAB) コンテナーはアドレス帳全体を表しており、すべてのアドレス帳のコンテンツにこのコンテナーを通じてアクセスできました。
Internet Explorer 5 以降を使用してプロファイル対応の Windows アドレス帳 (WAB) セッションを指定する Windows アドレス帳 (WAB) クライアントの場合、既定の Windows アドレス帳 (WAB) コンテナーは現在の Identity の既定の連絡先フォルダーに対応します。アプリケーションが IAddrBook::GetPAB を呼び出して PAB コンテナー内のデータを操作する限り、すべてのデータは現在の Identity のフォルダー内で自動的に操作されます。
プロファイル対応セッションを要求しない Windows アドレス帳 (WAB) クライアントの場合、IAddrBook::GetPAB が返すコンテナーは、連絡先フォルダー (Identity Manager がない場合) または共有連絡先フォルダー (Identity が存在する場合) に対応します。このフォルダーは、すべての Windows アドレス帳 (WAB) ユーザーが利用できます。プロファイルに関心のないアプリケーション開発者は、PAB コンテナー内でのすべてのデータ操作がすべてのユーザーに利用可能であることが保証されます。
このメソッドは実装されていません。(IAddrBook::SetPAB)
| cbEntryID | DWORD | in | 実装されていません。 |
| lpEntryID | ENTRYID* | inout | 実装されていません。 |
このメソッドは実装されていません。(IAddrBook::GetDefaultDir)
| lpcbEntryID | DWORD* | inout | 実装されていません。 |
| lppEntryID | ENTRYID** | inout | 実装されていません。 |
このメソッドは実装されていません。(IAddrBook::SetDefaultDir)
| cbEntryID | DWORD | in | 実装されていません。 |
| lpEntryID | ENTRYID* | inout | 実装されていません。 |
IAddrBook::GetSearchPath は、IAddrBook::ResolveName メソッドによって開始される名前解決処理に含めるコンテナーのエントリ識別子の順序付きリストを返します。
| ulFlags | DWORD | in | 検索パスで返される文字列の種類を制御するフラグのビットマスクを指定する ULONG 型の値。次のフラグは Windows アドレス帳 (WAB) で有効です。
| ||||
| lppSearchPath | SRowSet** | inout | コンテナーのエントリ識別子の順序付きリストを指定する SRowSet 型の変数へのポインターのアドレス。IAddrBook::GetSearchPath は、順序付きリストを SRowSet 構造体に格納します。アドレス帳の階層にコンテナーがない場合、メソッドは SRowSet 構造体にゼロを返します。 |
戻り値
HRESULT
このメソッドは実装されていません。(IAddrBook::SetSearchPath)
| ulFlags | DWORD | in | 実装されていません。 |
| lpSearchPath | SRowSet* | inout | 実装されていません。 |
戻り値
実装されていません。
メッセージングシステムが後で使用するために受信者リストを準備します。
| ulFlags | DWORD | in | 予約済み。0 に設定する必要があります。 |
| lpPropTagArray | SPropTagArray* | inout | 更新が必要なプロパティ (存在する場合) を示すプロパティタグの配列を指定する SPropTagArray 型の変数へのポインター。この変数は NULL にすることができます。 |
| lpRecipList | ADRLIST* | inout | 受信者のリストを保持する構造体を指定する ADRLIST 型の変数へのポインター。 |
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IAddrBook "{}" #usecom global IAddrBook IID_IAddrBook "{}" #comfunc global IAddrBook_OpenEntry 14 int,var,var,int,var,sptr #comfunc global IAddrBook_CompareEntryIDs 15 int,var,int,var,int,var #comfunc global IAddrBook_Advise 16 int,var,int,sptr,var #comfunc global IAddrBook_Unadvise 17 int #comfunc global IAddrBook_CreateOneOff 18 var,var,var,int,var,var #comfunc global IAddrBook_NewEntry 19 int,int,int,var,int,var,var,var #comfunc global IAddrBook_ResolveName 20 sptr,int,var,var #comfunc global IAddrBook_Address 21 var,var,var #comfunc global IAddrBook_Details 22 var,sptr,sptr,int,var,sptr,sptr,var,int #comfunc global IAddrBook_RecipOptions 23 int,int,var #comfunc global IAddrBook_QueryDefaultRecipOpt 24 var,int,var,var #comfunc global IAddrBook_GetPAB 25 var,var #comfunc global IAddrBook_SetPAB 26 int,var #comfunc global IAddrBook_GetDefaultDir 27 var,var #comfunc global IAddrBook_SetDefaultDir 28 int,var #comfunc global IAddrBook_GetSearchPath 29 int,var #comfunc global IAddrBook_SetSearchPath 30 int,var #comfunc global IAddrBook_PrepareRecips 31 int,var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IAddrBook "{}" #usecom global IAddrBook IID_IAddrBook "{}" #comfunc global IAddrBook_OpenEntry 14 int,sptr,sptr,int,sptr,sptr #comfunc global IAddrBook_CompareEntryIDs 15 int,sptr,int,sptr,int,sptr #comfunc global IAddrBook_Advise 16 int,sptr,int,sptr,sptr #comfunc global IAddrBook_Unadvise 17 int #comfunc global IAddrBook_CreateOneOff 18 sptr,sptr,sptr,int,sptr,sptr #comfunc global IAddrBook_NewEntry 19 int,int,int,sptr,int,sptr,sptr,sptr #comfunc global IAddrBook_ResolveName 20 sptr,int,sptr,sptr #comfunc global IAddrBook_Address 21 sptr,sptr,sptr #comfunc global IAddrBook_Details 22 sptr,sptr,sptr,int,sptr,sptr,sptr,sptr,int #comfunc global IAddrBook_RecipOptions 23 int,int,sptr #comfunc global IAddrBook_QueryDefaultRecipOpt 24 sptr,int,sptr,sptr #comfunc global IAddrBook_GetPAB 25 sptr,sptr #comfunc global IAddrBook_SetPAB 26 int,sptr #comfunc global IAddrBook_GetDefaultDir 27 sptr,sptr #comfunc global IAddrBook_SetDefaultDir 28 int,sptr #comfunc global IAddrBook_GetSearchPath 29 int,sptr #comfunc global IAddrBook_SetSearchPath 30 int,sptr #comfunc global IAddrBook_PrepareRecips 31 int,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。