ホーム › System.Contacts › IContact
IContact
COM公式ドキュメント
使用しないでください。単一の連絡先に対するプロパティの読み書きを行うメソッドを定義します。
解説(Remarks)
このインターフェイスを実装するクラスは、多くの場合、次のインターフェイスも併せて実装します。
- IPersistFile: 連絡先をファイルから読み込めるようにします。連絡先を読み込む際にこのインターフェイスを使用すると、CommitChanges における変更の競合検出を完全にサポートできます。
- IPersistStream: ストレージに単純なシリアルストリームを使用するオブジェクトを保存および読み込むためのメソッドを提供します。
- IPersistStreamInit: 連絡先をストリームに保存したり、ストリームから読み込んだりできるようにします。新しい IContact を作成するには IPersistStreamInit::InitNew を使用します。 注: IPersistStream で連絡先を読み込んだ場合、IPersistFile::Load や CommitChanges が提供するロックや競合検出は得られません。
- IContactProperties: 連絡先プロパティの操作を可能にします。
メソッド 3
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT GetContactID(LPWSTR pszContactID, DWORD cchContactID, DWORD* pdwcchContactIDRequired)
ローカルコンピューター内で一意の連絡先IDを取得します。
| pszContactID | LPWSTR | inout | 連絡先IDを格納するための、ユーザーが割り当てたバッファーです。 |
| cchContactID | DWORD | in | 割り当て済みのバッファーサイズを指定します。 |
| pdwcchContactIDRequired | DWORD* | inout | バッファー不足による失敗時に、pszContactID に必要なサイズが格納されます。NULL でもかまいません。 |
戻り値
型: HRESULT
次のいずれかの値を返します。
| 戻り値 | 説明 |
|---|---|
| 成功しました。pszContactID には null で終わる ContactID が格納されます。 | |
| pszContactID が値を格納するのに十分な大きさでなかった場合に、マクロ HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER) が返されます。必要なバッファーサイズは pdwcchContactIDRequired に格納されます。 |
この連絡先の読み込みに使用されたファイルシステムのパスを取得します。
| pszPath | LPWSTR | inout | 連絡先IDを格納するための、ユーザーが割り当てたバッファーです。 |
| cchPath | DWORD | in | 割り当て済みのバッファーサイズを文字数で指定します。 |
| pdwcchPathRequired | DWORD* | inout | バッファー不足による失敗時に、pszPath に必要なサイズが格納されます。 |
戻り値
型: HRESULT
次のいずれかの値を返します。
| 戻り値 | 説明 |
|---|---|
| 成功しました。pszPath にはパスが格納されます。 | |
| 連絡先IDがファイルパスから読み込まれていませんでした。 | |
| pszPath が値を格納するのに十分な大きさでなかった場合に、マクロ HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER) が返されます。必要なバッファーサイズは pdwcchPathRequired に格納されます。 |
この連絡先に加えた変更を連絡先ファイルに保存します。
| dwCommitFlags | DWORD | in | 予約済みのパラメーターです。0 を指定する必要があります。 |
戻り値
型: HRESULT
次のいずれかの値を返します。
| 戻り値 | 説明 |
|---|---|
| 変更がディスクに正常に書き込まれました。 | |
| 連絡先がファイルパスから読み込まれていませんでした。 | |
| 別のプロセスが、この連絡先への変更と互換性のない方法でファイルを変更しました。 |
解説(Remarks)
連絡先が作成されてから IContact::CommitChanges までの間に変更され、かつディスク上で互換性のない変更が加えられていた場合、ERROR_SHARING_VIOLATION を返すことがあります。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IContact "{F941B671-BDA7-4F77-884A-F46462F226A7}" #usecom global IContact IID_IContact "{61B68808-8EEE-4FD1-ACB8-3D804C8DB056}" #comfunc global IContact_GetContactID 3 var,int,var #comfunc global IContact_GetPath 4 var,int,var #comfunc global IContact_CommitChanges 5 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IContact "{F941B671-BDA7-4F77-884A-F46462F226A7}" #usecom global IContact IID_IContact "{61B68808-8EEE-4FD1-ACB8-3D804C8DB056}" #comfunc global IContact_GetContactID 3 sptr,int,sptr #comfunc global IContact_GetPath 4 sptr,int,sptr #comfunc global IContact_CommitChanges 5 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。