下記のような感じでMSDNのサンプルを動かしてみたんですが,エラーになってしまいます.LastError値は87(ERROR_INVALID_PARAMETER).
#include <pimstore.h>
// ...
HRESULT hr = E_FAIL;
CHOOSECONTACT cc = {0};
cc.cbSize = sizeof (cc);
cc.dwFlags = CCF_RETURNCONTACTNAME | CCF_HIDENEW;
// 連絡先の選択ダイアログを表示する
hr = ChooseContact(&cc);
// 選択した名前を表示する
MessageBox(NULL, cc.bstrContactName, TEXT("Selected Contact"), MB_OK);
// メモリを解放する
SysFreeString(cc.bstrContactName);
メジャーなAPIなんでケアレスミスだと思うんですが何でだろう...
eVC4な環境なのでそのままではChooseContact()は使えないので,pimstore.dllをLoadLibrary(), GetProcAddress()しました.
それがまずいのかと思ってWM5SDKのpimstore.libを引っこ抜いてリンクしてもNGでした.
WM6 SDKのサンプルではCCF_CHOOSECONTACTONLYを指定しているみたいですね。
Ad[es]で確認したところ、
cc.dwFlags = CCF_RETURNCONTACTNAME | CCF_HIDENEW | CCF_CHOOSECONTACTONLY;
とすることで動いてくれました。
WM5ではいかがでしょうか?
動きました!!!!
指摘いただいた点の他にも,テストアプリにHI_RES_AWAREのカスタムリソースが無かったのが原因でした.
ここ数ヶ月悩んでいた問題が無事解決できました.感謝感謝です.