Pocket Outlook 对象模型 POOM

什么是 Pocket Outlook 对象模型 (POOM) 应用程序通过 Pocket Outlook 对象模型来访问 Pocket Outlook 数据,即通常所称的 POOM . 该库基于 COM ,它提供了一个对象层次结构,从而简化了创建、修改和显示约会、任务和联系人的过程。
首先对 POOM 进行初始化:
BOOL InitPoom(void)
{
 // Initialize COM for Pocket Outlook.
 if (FAILED(CoInitializeEx(NULL, 0))) //初始化com
 {
  return FALSE;
 }
 // Get the application object.
 HRESULT hr = CoCreateInstance(CLSID_Application,
  NULL,
  CLSCTX_INPROC_SERVER,
  IID_IPOutlookApp2,
  (LPVOID*)&g_polApp);
 if (FAILED(hr))
 {
  return FALSE;
 }
 // Log on to POOM.
 hr = g_polApp->Logon(NULL);//登陆
 if (FAILED(hr))
 {
  return FALSE;
 }
 return TRUE;
}
获得电话中的联系人:
BOOL ReadPhoneContact()
{   
 IFolder * pFolder;
 IPOutlookItemCollection * pItems; //*m_pSimOnly;
 //Get the default contact folder.
 HRESULT hr =g_polApp->GetDefaultFolder(olFolderContacts, &pFolder);
 if (FAILED(hr))
 {
  return FALSE;
 }
 //Get the contact items collection.
 hr = pFolder->get_Items(&pItems);
 if (FAILED(hr))
 {
  return FALSE;
 }
 int phonContactCount;
 pItems->get_Count(&phonContactCount);
 for (int index= 1;index<= phonContactCount;index++)
 {
 
  IContact *pContact = NULL;
  //BSTR bsMobileNum = NULL;
 
  if(FAILED(pItems->Item(index,reinterpret_cast<IDispatch **>(&pContact))))
  {
   return FALSE;
  }
  else
  {
   pContact->get_MobileTelephoneNumber(&contactText.mobileNum);
   pContact->get_FirstName(&contactText.firstName);
   pContact->get_LastName(&contactText.lastName);
   //pContact->put_Birthday(DATE st);
    
  }
 }
如何写入联系人信息:
BOOL PutPhoneContact( CONTACTDATE contact)
{
 if (g_polApp == NULL)
 {
  return FALSE;
 }
 g_polApp->AddRef();
 IContact * pNewContact = NULL;
 if (SUCCEEDED(g_polApp->CreateItem(olContactItem, reinterpret_cast<IDispatch **>(&pNewContact))))
 {
  // set the new contact properties
  pNewContact->put_FirstName(contact.firstName);
  pNewContact->put_LastName(contact.lastName);
  pNewContact->put_HomeTelephoneNumber(contact.mobileNum);
  // save and clean up
  pNewContact->Save();
  pNewContact->Release();
  
  SysFreeString(contact.firstName);
  SysFreeString(contact.lastName);
  SysFreeString(contact.mobileNum);
 }
如何删除联系人信息:
BOOL DeleteContact()
{
 IFolder * pFolder = NULL;
 IPOutlookItemCollection * pItems = NULL;
 HRESULT hr =g_polApp->GetDefaultFolder(olFolderContacts, &pFolder);
  
 if (FAILED(hr))
 {
  return FALSE;
 }
 //Get the contact items collection. 
 hr = pFolder->get_Items(&pItems);
 if (FAILED(hr))
 {
  return FALSE;
 }
  
 int allItemsCount = 0;
 hr = pItems->get_Count(&allItemsCount);
 IAppointment *pIAppointment = NULL;
 IContact *Contact = NULL;
 ITask *task = NULL;
  for (int index= 1;index<= allItemsCount;index++)
  { 
   if(FAILED(pItems->Item(1,reinterpret_cast<IDispatch **>(&Contact))))
   {
    return FALSE;
   }
   else
   {  
    Contact->Delete();
   }
  }
  if (NULL != pFolder)    
 {                  
  pFolder->Release();  
  pFolder = NULL;      
 }
 if (NULL != pItems)     
 {                  
  pItems->Release(); 
  pItems = NULL;      
 }
  return TRUE;
}
 
 return TRUE;
}
 if (NULL != pFolder)    
 {                  
  pFolder->Release();  
  pFolder = NULL;      
 }
 if (NULL != pItems)     
 {                  
  pItems->Release(); 
  pItems = NULL;      
 }
 return TRUE; 
}
以上是对联系人的处理,任务,约会,处理方法类似,只是HRESULT hr =g_polApp->GetDefaultFolder(olFolderContacts, &pFolder);中的olFolderContacts应改为其他的,在头文件 pimstore.h中
enum OlDefaultFolders
    {   olFolderCalendar    = 9,//日程        olFolderContacts    = 10,//联系人        olFolderTasks       = 13,//任务
        olFolderCities      = 101,// 城市 时区
        olFolderInfrared    = 102,//红外线
    } OlDefaultFolders;
后两个没有用过
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值