IWMDMNotification::WMDMMessage

banner art

The WMDMMessage method is a callback method implemented by a client, and called by Windows Media Device Manager when a Plug and Play compliant device or storage medium is connected or removed.

Syntax

HRESULT WMDMMessage(DWORDdwMessageType,LPCWSTRpwszCanonicalName);

Parameters

dwMessageType

[in]  A DWORD specifying the message type.

The possible values for the event types are the following:

Message type Description
WMDM_MSG_DEVICE_ARRIVAL A device has been connected.
WMDM_MSG_DEVICE_REMOVAL A device has been removed.
WMDM_MSG_MEDIA_ARRIVAL A storage medium has been inserted in a connected device.
WMDM_MSG_MEDIA_REMOVAL A storage medium has been removed from a connected device.

pwszCanonicalName

[in]  Pointer to a wide-character, null-terminated string specifying the canonical name of the device for which this event is generated. The application does not release this value.

Return Values

The return value is an HRESULT in which application can return results of its processing of the message. The return value is ignored by WMDM.

Remarks

To learn how an application subscribes to receive notifications through this method, see Enabling Notifications.

Example Code

The following C++ code implements the WMDMMessage method, and prints out a device or storage arrival or departure notification message.

HRESULT WMDMMessage(DWORD  dwMessageType, LPCWSTR  pwszCanonicalName)
{
    switch(dwMessageType)
    {
    case WMDM_MSG_DEVICE_ARRIVAL:
        // TODO: Display a message indicating that a new device has been detected and display the device name.
        break;
    case WMDM_MSG_DEVICE_REMOVAL:
        // TODO: Display a message that the device has been removed and display the device name.
        break;
    case WMDM_MSG_MEDIA_ARRIVAL:
        // TODO: Display a message indicating that storage media has been added to the device and display the device name.
        break;
    case WMDM_MSG_MEDIA_REMOVAL:
        // TODO: Display a message that storage media has been removed from the device and display the device name.
        break;
    default:
        // TODO: Display a message indicating that an unidentified message has been received.
        break;
    }
    return S_OK; // Return value is ignored, and not returned to the application.
}

Requirements

Header: Defined in mswmdm.h and mswmdm_i.c; the application must include both of these.

Library: mssachlp.lib

See Also