スマートCOMポインターを使用してMS Outlookの連絡先を繰り返し使用するATLコードがありますが、一部のPCではCOMエラー0x80004003(「無効なポインター」)接触。同じコードが他のPCで正常に動作します。コードは次のようになります:COMエラー0x80004003(無効なポインター)アクセスMS Outlookの連絡先
_ApplicationPtr ptr;
ptr.CreateInstance(CLSID_Application);
_NameSpacePtr ns = ptr->GetNamespace(_T("MAPI"));
MAPIFolderPtr folder = ns->GetDefaultFolder(olFolderContacts);
_ItemsPtr items = folder->Items;
const long count = items->GetCount();
for (long i = 1; i <= count; i++)
{
try
{
_ContactItemPtr contactitem = items->Item(i);
// The following line throws a 0x80004003 exception on some machines
ATLTRACE(_T("\tContact name: %s\n"), static_cast<LPCTSTR>(contactitem->FullName));
}
catch (const _com_error& e)
{
ATLTRACE(_T("%s\n"), e.ErrorMessage());
}
}
他のアプリケーション/アドインがこの原因の可能性がありますか?どんな助けも歓迎されるでしょう。
可能なチェックが1つあります。 contactitemはいつもヌルですか?私はあなたが時間の前に数をチェックしているので、それは試してみる価値があるとは思いません。 –