LRESULT CAppWindow::OnCommand(WORD wID) { switch (wID) { case ID_TRAYICON_EXIT: SendMessage(WM_SYSCOMMAND, SC_CLOSE); break; case ID_TRAYICON_CHECKFORUPDATESNOW: m_fManualUpdateCheck = TRUE; CheckForUpdates(); break; case ID_TRAYICON_INBOX: OpenInbox(); break; case ID_TRAYICON_LOGIN: PromptForCredentials(); break; case ID_TRAYICON_SIGNOUT: SignOut(TRUE); break; case ID_TRAYICON_HELP: DisplayHelp(); break; case ID_TRAYICON_ABOUT: (new CAboutDialog())->Create(DT_ABOUT, this); break; case ID_TRAYICON_OPTIONS: (new COptionsSheet())->Create(DT_OPTIONS, this); break; case ID_TRAYICON_CHECKWAVESNOW: CheckWavesNow(); break; } return 0; }
CMAPIFolder* CMAPIEx::OpenSpecialFolder(unsigned long ulFolderID, BOOL bInternal) { #ifdef _WIN32_WCE CMAPIFolder* pFolder=new CMAPIFolder(this, NULL); if(pFolder->GetPOOM()->OpenFolder(ulFolderID, bInternal)!=NULL) { if(bInternal) { delete m_pFolder; m_pFolder=pFolder; } return pFolder; } return NULL; #else CMAPIFolder* pInbox=OpenInbox(FALSE); if(!pInbox || !m_pMsgStore) return FALSE; LPSPropValue props=NULL; ULONG cValues=0; DWORD dwObjType; ULONG rgTags[]={ 1, ulFolderID }; LPMAPIFOLDER pFolder; if(pInbox->Folder()->GetProps((LPSPropTagArray) rgTags, cm_nMAPICode, &cValues, &props)!=S_OK) return NULL; HRESULT hr=m_pMsgStore->OpenEntry(props[0].Value.bin.cb, (LPENTRYID)props[0].Value.bin.lpb, NULL, m_ulMDBFlags, &dwObjType, (LPUNKNOWN*)&pFolder); MAPIFreeBuffer(props); delete pInbox; if(hr!=S_OK) return NULL; if(pFolder) { CMAPIFolder* pMAPIFolder=new CMAPIFolder(this, pFolder); if(bInternal) { delete m_pFolder; m_pFolder=pMAPIFolder; } return pMAPIFolder; } return NULL; #endif }
LPMAPIFOLDER CExMapi::OpenSpecialFolder(unsigned long ulFolderID,BOOL bInternal) { LPMAPIFOLDER pInbox=OpenInbox(FALSE); if(!pInbox || !m_pMsgStore) return FALSE; LPSPropValue props=NULL; ULONG cValues=0; DWORD dwObjType; ULONG rgTags[]={ 1, ulFolderID }; LPMAPIFOLDER pFolder; if(pInbox->GetProps((LPSPropTagArray) rgTags, cm_nMAPICode, &cValues, &props)!=S_OK) return NULL; m_pMsgStore->OpenEntry(props[0].Value.bin.cb,(LPENTRYID)props[0].Value.bin.lpb, NULL, m_ulMDBFlags, &dwObjType,(LPUNKNOWN*)&pFolder); MAPIFreeBuffer(props); RELEASE(pInbox); if(pFolder && bInternal) { RELEASE(m_pFolder); m_pFolder=pFolder; } return pFolder; }