Export (0) Print
Expand All

SHNotificationAdd

Windows Mobile 6.5
A version of this page is also available for
4/8/2010

This function asynchronously adds a notification to the notification tray.

Aa930981.note(en-us,MSDN.10).gifNote:
On Windows Mobile Standard SHNotificationAdd is not available.


LRESULT SHNotificationAdd(
  SHNOTIFICATIONDATA* pndAdd
);

pndAdd

[in] Pointer to an SHNOTIFICATIONDATA structure describing the notification to be added.

This function returns ERROR_SUCCESS when successful.

The following list shows the return values on failure, for Windows Mobile Professional and Windows Mobile Classic

  • ERROR_INVALID_PARAMETER
  • ERROR_OUTOFMEMORY
  • ERROR_DLL_INIT_FAILED
  • ERROR_NOT_FOUND
  • ERROR_NO_MATCH

The following list shows the return values on failure, for Windows Mobile Standard.

  • ERROR_INVALID_PARAMETER

For a description of these error values, see System Errors - Alphabetical Order.

The following code example demonstrates how to use SHNotificationAdd.

Aa930981.note(en-us,MSDN.10).gifNote:
To make the following code example easier to read, security checking and error handling are not included. This code example should not be used in a release configuration unless it has been modified to include them.
static const GUID CLSID_SHNAPI_Test = { 0x33765136, 0x8cb9, 0x449a, { 0xb0, 0x20, 0x43, 0xed, 0x40, 0xa, 0xb8, 0xfc } };
void SHNotificationExample()
{
    // This code will add an SHNotification notificaion 
    SHNOTIFICATIONDATA sn  = {0};
    SHNOTIFICATIONDATA sn2 = {0};
    sn.cbStruct = sizeof(sn);
    sn.dwID = 1;
    sn.npPriority = SHNP_INFORM;
    sn.csDuration = 15;
    sn.hicon = LoadIcon(g_hInstance, MAKEINTRESOURCE(IDI_SAMPLEICON));
    sn.clsid = CLSID_SHNAPI_Test;
    sn.grfFlags = 0;
    sn.pszTitle = TEXT("Sample Notification");
    sn.pszHTML = TEXT("<html><body>This is <b>sample html</b> in a notification!</body></html>");
    sn.rgskn[0].pszTitle = TEXT("Dismiss");
    sn.rgskn[0].skc.wpCmd = 100;
    //Add the notification to the tray

    //Put the data from an existing notification into a second SHNOTIFICATIONDATA struct
    sn2.cbStruct = sizeof(sn2);
    SHNotificationGetData(&CLSID_SHNAPI_Test, 1, &sn2);
    //Update the title, HTML, icon, and softkeys of the notification
    sn2.pszTitle = TEXT("Updated - Sample Notification");
    sn2.pszHTML = TEXT("<html><body>This notification has been <b>updated!</b></body></html>");
    sn2.hicon = LoadIcon(g_hInstance, MAKEINTRESOURCE(IDI_SAMPLEICON2));
    sn2.rgskn[0].pszTitle = TEXT("Disabled");
    sn2.rgskn[0].skc.wpCmd = 100;
    sn2.rgskn[0].skc.grfFlags = NOTIF_SOFTKEY_FLAGS_DISABLED;
    SHNotificationUpdate(SHNUM_TITLE | SHNUM_HTML | SHNUM_ICON | SHNUM_SOFTKEYCMDS | SHNUM_SOFTKEYS, &sn2);
    //Remove the notification from the tray
    SHNotificationRemove(&CLSID_SHNAPI_Test, 1);
    //Add a new notification that utilizes the MRE functionality
    sn.cbStruct = sizeof(sn);
    sn.dwID = 1;
    sn.npPriority = SHNP_INFORM;
    sn.csDuration = 15;
    sn.hicon = LoadIcon(g_hInstance, MAKEINTRESOURCE(IDI_SAMPLEICON));
    sn.clsid = CLSID_SHNAPI_Test;
    sn.grfFlags = SHNF_STRAIGHTTOTRAY;
    sn.pszTodaySK = TEXT("New Task");
    sn.pszTodayExec = TEXT("\\windows\\tasks.exe");
    //Add the notification to the tray
    SHNotificationAdd(&sn);
    //Remove the notification from the tray
    SHNotificationRemove(&CLSID_SHNAPI_Test, 1);
}

The notification tray is the area within the taskbar reserved by shells to display status notification icons. Call this function to add a notification to the tray. Notification processing is done asynchronously; that is, this function will return after adding the notification to the tray, and processing will happen on a different thread.

Headeraygshell.h
Libraryaygshell.lib
Windows Embedded CEWindows Embedded CE 6.0 and later
Windows MobileWindows Mobile Version 5.0 and later

Community Additions

ADD
Show:
© 2014 Microsoft