SHNotificationRemove
This function removes a notification. This is usually in response to some action taken on the data that is outside of the notification system. For example, if a message is read or deleted and the notification becomes obsolete by means other than action taken from the notification bubble.
LRESULT SHNotificationRemove( const CLSID* pclsid, DWORD dwID );
- pclsid
-
[in] Class identifier of the notification to remove.
- dwID
-
[in] Specifies the unique identifier of the notification icon to remove. Do not set the value of this parameter to 0; that option is not implemented. If the value of this parameter is set to 0, the function will return an ERROR_INVALID_PARAMETER error.
This function returns ERROR_SUCCESS when successful.
The following list shows the return values on failure, for a 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 SHNotificationRemove.
Note: |
|---|
| 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 notification
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
SHNotificationAdd(&sn);
//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
//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);
}
Note: