删除所有联系人

 
void DeleteAllSysContact()
{
 if(IDYES == MessageBox(_T("你确定要删除所有系统通讯录联系人?"), _T("提示"), MB_YESNO|MB_ICONQUESTION))
  {
   IPOutlookApp * polApp = NULL ;
   IFolder * pFolder = NULL;
   IPOutlookItemCollection * pItemCol = NULL;
   if(SUCCEEDED(CoInitializeEx(NULL, 0)))
   {
    if(S_OK == CoCreateInstance(CLSID_Application, NULL, CLSCTX_INPROC_SERVER,
     IID_IPOutlookApp, reinterpret_cast<void **>(&polApp)))
    {
     if(SUCCEEDED(polApp->Logon(NULL)))
     {
      if(SUCCEEDED(polApp->GetDefaultFolder(olFolderContacts, &pFolder)))
      {
       if(SUCCEEDED(pFolder->get_Items(&pItemCol)))
       {
        int iItemCount = 0;
        pItemCol->get_Count(&iItemCount);
        if (iItemCount > 0)
        {
         int i;
         int error;
         error = GetLastError();
         for (i = 0; i < iItemCount; i++)
         {
          if (S_OK != pItemCol-> Remove(1))  
          {
           error = GetLastError();
           MessageBox(_T("删除失败!请稍候再试!"), _T("提示"), 0);
           break;
          }
          
         }
         if(i == iItemCount)
         {
          MessageBox(_T("全部删除成功!"), _T("提示"), 0);
         }
         pItemCol->Release();
        }
        else
        {
         MessageBox(_T("没有可删除的联系人!"), _T("提示"), 0);
        }
       }
      }
      pFolder->Release();
     }
     polApp->Logoff();
    }
    polApp->Release();
   }
   CoUninitialize();
  } 
}
注意:删除联系人调用的函数 Remove ,参数一定要小心,不要写成i,因为它表示的是删除第几个联系人。只需要每次都删除第一个联系人即可。
类似的,删除SIM卡上的联系人也应该注意索引问题。
void DeleteAllSIMContact()
{
  if(IDYES == MessageBox(_T("你确定要删除所有SIM卡联系人?"), _T("提示"), MB_YESNO|MB_ICONQUESTION))
  {
   SHEnableSoftkey(m_hMenu, 0, TRUE, FALSE);
   SHEnableSoftkey(m_hMenu, 1, TRUE, FALSE);
   SetCursor(LoadCursor(_Module.GetModuleInstance(), IDC_WAIT));
 
   HSIM hSIM;
   if(SUCCEEDED(SimInitialize(SIM_INIT_NONE, NULL, NULL, &hSIM)))
   {
    SIMPHONEBOOKENTRY SIMPhoneEntry;
    DWORD dwUsed = 0;
    DWORD dwTotal = 0;
    if(SUCCEEDED(SimGetPhonebookStatus(hSIM, SIM_PBSTORAGE_SIM, &dwUsed, &dwTotal)))
    {
     if(dwTotal <= 0)
     {
      MessageBox(_T("没有任何SIM卡联系人!"), _T("提示"), 0);
     }
     else
     {
      int i ;
      for(i = 0; i<dwTotal; i++)
      {  
       if(S_OK != SimDeletePhonebookEntry(hSIM, SIM_PBSTORAGE_SIM, i+1))
       {
        MessageBox(_T("删除SIM卡联系人失败!请稍后再试!"), _T("提示"), 0);
        break;
       }
      }
      if(i == dwTotal)
      {
       MessageBox(_T("删除SIM卡联系人成功!"), _T("提示"), 0);
      }
     }
    }
   }
   SimDeinitialize(hSIM);
   SHEnableSoftkey(m_hMenu, 0, TRUE, TRUE);
   SHEnableSoftkey(m_hMenu, 1, TRUE, TRUE);
   SetCursor(LoadCursor(_Module.GetModuleInstance(), IDC_NO));
  }
}
注意到 SimDeletePhonebookEntry中的索引值是i+1 ,也就是需要从1开始,而不是0!否则会无法删除成功。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值