The following code illustrates how to acquire and then release a device.
MCI_GENERIC_PARMS mciGenericParms;
/* Info data structure for cmd */
USHORT usDeviceID;
HWND hwndMyWindow;
/* Assign hwndCallback the handle to the PM Window routine */
mciGenericParms.hwndCallback = hwndMyWindow;
/* Acquire the device for exclusive access and assume it is inactive */
mciSendCommand(usDeviceID, /* Device ID */
MCI_ACQUIREDEVICE, /* MCI acquire device message */
MCI_NOTIFY | MCI_EXCLUSIVE,
/* Flags for this message */
(PVOID) &mciGenericParms, /* Data structure */
0); /* No user parm */
/* Device will be exclusively acquired once MM_MCIPASSDEVICE */
message is received indicating MCI_GAINING_USE */
/* Perform whatever operations require exclusive access to device */
mciSendCommand(usDeviceID, /* Device ID */
MCI_RELEASEDEVICE, /* MCI release device message */
MCI_NOTIFY, /* Flag for this message */
(PVOID) &mciGenericParms, /* Data structure */
0); /* No user parm */