Maybe I'm doing something wrong. This code returns error 277(MCIERR_INTERNAL) from mciSendCommand:

Code:
MCI_OPEN_PARMS op = {0};
op.lpstrElementName = L"song.mp3";
op.lpstrDeviceType = L"mpegvideo";

MCIERROR ret = mciSendCommand(
	0, 
	MCI_OPEN, MCI_OPEN_ELEMENT | MCI_OPEN_TYPE, 
	reinterpret_cast<DWORD_PTR>(&op));
And this code returns error 281(MCIERR_EXTENSION_NOT_FOUND):
Code:
MCI_OPEN_PARMS op = {0};
op.lpstrElementName = L"song.mp3";
op.lpstrDeviceType = reinterpret_cast<LPWSTR>(MCI_ALL_DEVICE_ID); //L"mpegvideo";

MCIERROR ret = mciSendCommand(
	0, 
	MCI_OPEN, MCI_OPEN_ELEMENT | MCI_OPEN_TYPE | MCI_OPEN_TYPE_ID, 
	reinterpret_cast<DWORD_PTR>(&op));
Yet every example I could find on google and MSDN use similar code to open MP3s. What could be the problem??