Compartilhar via


Notification Window Messages

Windows Mobile SupportedWindows Embedded CE Not Supported

9/8/2008

Essas mensagens são enviadas para o manipulador de janela (HWND) passado para o método IPOutlookApp::Logon. Eles são semelhantes de DB_CEOID_ Mensagens de CEDB. As mensagens são enviadas somente para bancos de dados (por exemplo, compromissos, contatos e tarefas) que você se inscreveu. Notificações são enviadas para ambas as alterações feitas pelo Mobile Outlook (o chamador) via o _LOCAL Mensagens e para que as alterações feitas por outros processos via o _REMOTE As mensagens.

Você deve inscrever(-se) para notificações por configuração de PIMPR_FOLDERNOTIFICATIONS propriedade sobre a pasta desejar, com os sinalizadores que desejar. Os valores possíveis sinalizador são PIMFOLDERNOTIFICATION_LOCAL e MapVirtualKey. PIMFOLDERNOTIFICATION_REMOTE. Os sinalizadores são independentes, e você pode definir o valor como 0 para notificações parar. Para múltiplo pastas do mesmo tipo, a última configuração para essa propriedade de qualquer uma dessas pastas, serão usadas para todas essas pastas.

A seguinte tabela lista os sinalizadores para receber notificações.

Notificação Value Description

PIMFOLDERNOTIFICATION_LOCAL

0 x 01

Notificação de alterações desse processo.

PIMFOLDERNOTIFICATION_REMOTE

0 x 02

Notificação de alterações de outros processos.

PIMFOLDERNOTIFICATION_ALL

0x03

Notificação de alterações de todos os processos. (PIMFOLDERNOTIFICATION_REMOTE | PIMFOLDERNOTIFICATION_LOCAL)

A seguinte tabela lista as mensagens janela notificação de alterações no local e remoto processos.

Notificação Value Description

PIM_ITEM_CREATED_LOCAL

WM_APP + 0 x 100

Gerenciador de informações pessoais item criado localmente.

PIM_ITEM_DELETED_LOCAL

WM_APP + 0x101

Gerenciador de informações pessoais item excluído localmente.

PIM_ITEM_CHANGED_LOCAL

WM_APP + 0 x 102

Gerenciador de informações pessoais item alterada localmente.

PIM_ITEM_CREATED_REMOTE

WM_APP + 0x105

Gerenciador de informações pessoais item criado remotamente.

PIM_ITEM_DELETED_REMOTE

WM_APP + 0x106

Gerenciador de informações pessoais item excluído remotamente.

PIM_ITEM_CHANGED_REMOTE

WM_APP + 0x107

Gerenciador de informações pessoais item alterado remotamente.

Observação

wParam = Item OID, lParam = A pasta que contém o item.

Código Exemplo 1

O seguinte exemplo de código demonstra como inscrever(-se) para os diferentes tipos de notificações.

Observação

Para tornar o exemplo de código mais fácil para ler, verificação de segurança e manipulação de erro não estão incluídos.This code example should not be used in a release configuration unless it has been modified to include them.

void NotificationsExample()
{
    HRESULT        hr    = E_FAIL;
    IPOutlookApp2 *pPoom = NULL;

    // Initialize COM for using the Pocket Outlook Object Model (POOM).
    CoInitializeEx(NULL, 0);

    // Get a reference to the POOM (Outlook Mobile) application object.
    hr = CoCreateInstance(CLSID_Application, NULL, CLSCTX_INPROC_SERVER, IID_IPOutlookApp2, (LPVOID*)&pPoom);
    
    // Logon to a POOM session. Pass-in a valid handle to the POOM session parent window so the notifications can be processed from it's wndproc. Outlook Mobile uses this handle for each PIM item's Display call, as well as for the infrared transfer dialog.

    hr = pPoom->Logon((long)hWnd);

    // CASE 1: Subscribe to local and remote appointment notifications.
    hr = SubscribeToNotifications(pPoom, olFolderCalendar, PIMFOLDERNOTIFICATION_ALL);

    // CASE 2: Subscribe to remote contact notifications. I.e., changes made in another IPOutlookApp instance.
    hr = SubscribeToNotifications(pPoom, olFolderContacts, PIMFOLDERNOTIFICATION_REMOTE);

    // CASE 3: Substribe for local task notifications. I.e., changes made in this IPOutlookApp instance.
    hr = SubscribeToNotifications(pPoom, olFolderTasks, PIMFOLDERNOTIFICATION_LOCAL);

    // Insert your code for creating a dialog window, here.

    return;
}

Code Example 2

O seguinte exemplo de código demonstra como inscrever(-se) para notificações com base no tipo pasta.

Observação

Para tornar o exemplo de código mais fácil para ler, verificação de segurança e manipulação de erro não estão incluídos.This code example should not be used in a release configuration unless it has been modified to include them.

HRESULT SubscribeToNotifications(IPOutlookApp2 *pPoom, OlDefaultFolders olFolder, uint uiNotificationsType)
{
    HRESULT   hr       = 0;
    IFolder   *pFolder = NULL;
    IItem     *pItem   = NULL;
    CEPROPVAL propval  = {0};
    
    // Get the folder for the item type.
    hr = pPoom->GetDefaultFolder(olFolder, &pFolder);

    // Get the IItem interface for the IFolder.
    hr = pFolder->QueryInterface(IID_IItem, (LPVOID*)&pItem);

    // Set the folder's properties.
    propval.propid      = PIMPR_FOLDERNOTIFICATIONS;
    propval.val.ulVal   = uiNotificationsType;
    hr     = pItem->SetProps(0, 1, &propval);

    // Release resources.
    pItem->Release();
    pFolder->Release();

    return hr;
}

Remarks

Para receber notificações, IPOutlookApp::Logon deve ser chamado a partir segmento de UI principal do seu aplicativo.

Se IPOutlookApp::Logon é chamado de um secundário segmento, que segmento deve implementar um executar um loop distribuir mensagem.

Requirements

Header pimstore.h
Library Pimstore.lib
Windows Mobile Pocket PC for Windows Mobile Version 5.0 and later, Smartphone for Windows Mobile Version 5.0 and later

See Also

Reference

Pocket Outlook Object Model Notifications
IPOutlookApp::Logon
Notification Flags

Other Resources