Media Center Core Commands: Difference between revisions

From wiki.jriver.com
Jump to navigation Jump to search
Line 622: Line 622:
</tr>
</tr>
<tr>
<tr>
<td> 28007 </td><td>MCC_IMAGE_FIRST </td><td> [ignore] </td>
<td> 28007 </td><td>MCC_PLAYBACK_ENGINE_FIRST </td><td> [ignore] </td>
</tr>
</tr>
<tr>
<tr>
<td> 28008 </td><td>MCC_IMAGE_LAST </td><td> [ignore] </td>
<td> 28008 </td><td>MCC_PLAYBACK_ENGINE_LAST </td><td> [ignore] </td>
</tr>
</tr>
<tr>
<tr>
<td> 28009 </td><td>MCC_IMAGE_NEXT </td><td> [ignore] </td>
<td> 28009 </td><td>MCC_PLAYBACK_ENGINE_NEXT </td><td> [ignore] </td>
</tr>
</tr>
<tr>
<tr>
<td> 28010 </td><td>MCC_IMAGE_PREVIOUS </td><td> [ignore] </td>
<td> 28010 </td><td>MCC_PLAYBACK_ENGINE_PREVIOUS </td><td> [ignore] </td>
</tr>
</tr>
<tr>
<tr>
<td> 28011 </td><td>MCC_IMAGE_PAUSE_SLIDESHOW </td><td> BOOL bPause (-1 toggles) </td>
<td> 28011 </td><td>MCC_PLAYBACK_ENGINE_PAUSE </td><td> BOOL bPause (-1 toggles) </td>
</tr>
</tr>
<tr>
<tr>
<td> 28012 </td><td>MCC_IMAGE_AUTO_PAN </td><td> BOOL bAutopan (-1 toggles) </td>
<td> 28012 </td><td>MCC_IMAGE_PAN_AND_ZOOM </td><td>BOOL bPanAndZoom (-1 toggles)</td>
</tr>
</tr>
<tr>
<tr>
Line 692: Line 692:
<tr>
<tr>
<td> 28030 </td><td>MCC_TV_CHANGE_CHANNEL_KEY </td><td> int nKey</td>
<td> 28030 </td><td>MCC_TV_CHANGE_CHANNEL_KEY </td><td> int nKey</td>
</tr>
<tr>
<td> 28031 </td><td>MCC_TV_PLAY_CHANNEL_POSITION </td><td>int Playlist position</td>
</tr>
</tr>
</table>
</table>

Revision as of 12:33, 22 August 2010

Each command has a "what command" (i.e. MCC_PLAY_PAUSE) and also an optional parameter, which is explained by the comment following the command. If you don't use the parameter, set it to '0'.

The full, C++ header (may be newer than the wiki) is available here: J. River Media Core Commands Header File

Note: You may need to save the MCCommands.h file to your hard drive for the line breaks to appear correctly.

Remember that some commands may only work with the latest version of Media Center.

How To Issue Media Core Commands

  • Post a WM_MC_COMMAND based message to the MC frame

C++ Example:

HWND hwndMC = FindWindow(_T("MJFrame"), NULL);
PostMessage(hwndMC, WM_MC_COMMAND, MCC_PLAY_PAUSE, 0);
  • Fire the same command through the launcher (i.e. 'MC12.exe') in the system directory
MC15.exe /MCC 10000, 0

MC Commands

Playback

Note: See the Zones section below for how to issue these commands to a specific Zone.

EnumCommandParameter
10000MCC_PLAY_PAUSEignore
10001MCC_PLAYignore
10002MCC_STOPBOOL bDisplayWarning
10003MCC_NEXTBOOL bNotActualNext
10004MCC_PREVIOUSignore
10005MCC_SHUFFLE0: toggle shuffle mode; 1: shuffle, jump to PN; 2: shuffle, no jump; 3: off; 4: on; 5:automatic
10006MCC_CONTINUOUS0: toggle continuous; 1: off; 2: playlist; 3: song
10007MCC_OBSOLETE_10007ignore
10008MCC_FAST_FORWARDint nRate
10009MCC_REWINDint nRate
10010MCC_STOP_CONDITIONALignore
10011MCC_SET_ZONEint nZoneIndex (-1 toggles forward, -2 toggles backwards)
10012MCC_TOGGLE_DISPLAYBOOL bExcludeTheaterView
10013MCC_SHOW_WINDOW,BOOL bJumpToPlayingNow
10014MCC_MINIMIZE_WINDOWignore
10015MCC_PLAY_CPLDB_INDEXint nIndex
10016MCC_SHOW_DSP_STUDIOignore
10017MCC_VOLUME_MUTE0: toggle; 1: mute; 2: unmute
10018MCC_VOLUME_UPint nDeltaPercent
10019MCC_VOLUME_DOWNint nDeltaPercent
10020MCC_VOLUME_SETint nPercent
10021MCC_SHOW_PLAYBACK_OPTIONSignore
10022MCC_SET_PAUSEBOOL bPause (-1 toggles)
10023MCC_SET_CURRENTLY_PLAYING_RATINGint nRating (0 means ?)
10024MCC_SHOW_PLAYBACK_ENGINE_MENUscreen point (loword: x, hiword: y) -- must send directly
10025MCC_PLAY_NEXT_PLAYLISTignore
10026MCC_PLAY_PREVIOUS_PLAYLISTignore
10027MCC_MAXIMIZE_WINDOWignore
10028MCC_RESTORE_WINDOWignore
10029MCC_SET_PLAYERSTATUSPLAYER_STATUS_CODES Code
10030MCC_SET_ALTERNATE_PLAYBACK_SETTINGSBOOL bAlternateSettings (-1 toggles)
10031MCC_SET_PREVIEW_MODE_SETTINGSlow 12 bits: int nDurationSeconds, high 12 bits: int nStartSeconds
10032MCC_SHOW_PLAYBACK_ENGINE_DISPLAY_PLUGIN_MENUscreen point (loword: x, hiword: y) -- must send directly
10033MCC_DVD_MENUignore
10034MCC_SEEK_FORWARDint nMilliseconds (0 means default -- varies depending on playback type)
10035MCC_SEEK_BACKint nMilliseconds (0 means default -- varies depending on playback type)
10036MCC_STOP_AFTER_CURRENT_FILE BOOL bStopAfterCurrentFile (-1 toggles)
10037MCC_DETACH_DISPLAYBOOL bDetach (-1 toggles)
10038MCC_SET_MODE_ZONE_SPECIFICUI_MODES Mode
10039MCC_STOP_INTERNALignore
10040MCC_PLAYING_NOW_REMOVE_DUPLICATESignore
10041MCC_SHUFFLE_REMAININGignore
10042MCC_PLAY_FIRST_FILEignore
10043MCC_PLAY_LAST_FILEignore
10044MCC_PLAY_FILE_BY_STRINGBSTR bstrFile (deleted by receiver)
10045MCC_PLAY_FILE_AGAINignore
10046MCC_HANDLE_PLAYBACK_ERRORignore
10047MCC_PLAY_RADIOBOOL bShowDialog
10048MCC_SEEKint nPositionMilliseconds

File

EnumCommandParameter
20000MCC_OPEN_FILEignore
20001MCC_OPEN_URLignore
20002MCC_PRINT_LISTignore
20003MCC_EXPORT_PLAYLISTint nPlaylistID (-1 for active view)
20004MCC_EXPORT_ALL_PLAYLISTSignore
20005MCC_UPLOAD_FILESignore
20006MCC_EMAIL_FILESignore
20007MCC_EXITBOOL bForce
20008MCC_UPDATE_LIBRARYignore
20009MCC_CLEAR_LIBRARYignore
20010MCC_EXPORT_LIBRARYignore
20011MCC_BACKUP_LIBRARYignore
20012MCC_RESTORE_LIBRARYignore
20013MCC_LIBRARY_MANAGERignore
20014MCC_IMAGE_ACQUIREignore
20015MCC_PRINT_IMAGESMFKEY nKey (-1 for selected files)
20016MCC_PRINTignore
20017MCC_OBSOLETE_20017ignore
20018MCC_OBSOLETE_20018ignore
20019MCC_OBSOLETE_20019ignore
20020MCC_OBSOLETE_20020ignore
20021MCC_OBSOLETE_20021ignore
20022MCC_OBSOLETE_20022ignore
20023MCC_OBSOLETE_20023ignore
20024MCC_IMPORT_PLAYLISTignore
20025MCC_LOAD_LIBRARYint nLibraryIndex
20026MCC_SYNC_LIBRARYignore
20027MCC_EMAIL_PODCAST_FEEDignore
20028MCC_LOAD_LIBRARY_READ_ONLYint nLibraryIndex (12.0.449)
20029MCC_CONNECT_LIBRARYignore
20030MCC_EXPORT_ITUNESignore
20031MCC_DISCONNECT_LIBRARYignore
20032MCC_SYNC_WITH_LIBRARY_SERVERignore

Edit

EnumCommandParameter
21000MCC_COPYignore
21001MCC_PASTEignore
21002MCC_SELECT_ALLignore
21003MCC_SELECT_INVERTignore
21004MCC_DELETEBOOL bAggressive
21005MCC_RENAMEignore
21006MCC_UNDOignore
21007MCC_REDOignore
21008MCC_QUICK_SEARCHBOOL bRepeatLastSearch
21009MCC_ADD_PLAYLISTMEDIAFILE_INFO_ARRAY * paryFiles = NULL
21010MCC_ADD_SMARTLISTignore
21011MCC_ADD_PLAYLIST_GROUPignore
21012MCC_PROPERTIESMEDIAFILE_INFO_ARRAY * paryFiles = NULL (-1 toggles)
(note: never PostMessage(...) a pointer)
21013MCC_TOGGLE_TAGGING_MODEignore
21014MCC_CUTignore
21015MCC_DESELECT_ALLignore
21016MCC_DELETE_ALLBOOL bAggressive
21017MCC_ADD_PODCAST_FEEDignore
21018MCC_EDIT_PODCAST_FEEDignore
21019MCC_ADD_PODCAST_DEFAULTSignore
21020MCC_CREATE_STOCK_SMARTLISTSignore
21021MCC_ENABLE_PODCAST_DOWNLOADignore
21022MCC_DISABLE_PODCAST_DOWNLOADignore
21023MCC_EDIT_PLAYLISTignore
21024MCC_EDIT_PLAYING_NOWignore
21025MCC_EDIT_DISC_INFORMATIONignore
21026MCC_EDIT_SMARTLISTint nPlaylistID
21027MCC_REFRESH_PODCAST_FEEDignore
21028MCC_LOOKUP_MOVIE_INFORMATIONignore

View

EnumCommandParameter
22000MCC_TOGGLE_MODE-1: Next Mode, 0: Standard, 1: Mini, 2: Display, 3: Theater View, 4: Cover View
22001MCC_THEATER_VIEW0:Toggle, 1:Home, 2:Playing Now, 3:Audio, 4:Images, 5:Video, 6:Playlists, 7:CD & DVD, 8:TV
22002MCC_PARTY_MODEignore
22003MCC_SHOW_TREE_ROOTint nTreeRootIndex
22004MCC_FIND_MEDIAwchar * pstrSearch (note: memory will be deleted by receiver)
22005MCC_BACKint nLevels (0 does 1 level)
22006MCC_FORWARDint nLevels (0 does 1 level)
22007MCC_REFRESHignore
22008MCC_SET_LIST_STYLEint nListStyle (-1 toggles)
22009MCC_SET_MODE-3: Current Mode (update settings), -2: Close Display, -1: Next Mode, 0: Standard, 1: Mini, 2: Display, 3: Theater View
22010MCC_SHOW_ARTISTINFOignore
22011MCC_SHOW_FINDCDignore
22012MCC_SHOW_RECENTLYIMPORTEDignore
22013MCC_SHOW_TOPHITSignore
22014MCC_SHOW_RECENTLYPLAYEDignore
22015MCC_SET_MEDIA_MODEint nMediaMode
22016MCC_CONFIGURE_ACCESS_CONTROLignore
22017MCC_SET_SERVER_MODEBOOL bServerMode
22018MCC_SET_MODE_FOR_EXTERNAL_PROGRAM_LAUNCHint nType (0: starting external app, 1: ending external app)
22019MCC_SET_MODE_FOR_SECOND_INSTANCE_LAUNCHUI_MODES Mode
22020MCC_HOMEignore
22021MCC_ROLLUP_VIEW_HEADERBOOL bRollup (-1: toggle)
22022MCC_FOCUS_SEARCH_CONTROLignore
22023MCC_SET_ACTIVE_VIEW_KEYint nViewKey (-1: toggle, -2: toggle backwards, -3: new view)
22024MCC_CLOSE_VIEW_KEYint nViewKey (-1: current view)
22025MCC_VIEW_ZOOM_SETint nZoomPercentage
22026MCC_VIEW_ZOOM_INCREMENTint nZoomDeltaPercentage

Tools

23000 MCC_IMPORT = 23000, loword: bAutomatic, hiword: bDisableAlreadyRunningWarning
23001 MCC_RIP, ignore
23002 MCC_BURN, ignore
23003 MCC_RECORD, ignore
23004 MCC_CONVERT, ignore
23005 MCC_ANALYZE_AUDIO, ignore
23006 MCC_MEDIA_EDITOR, ignore
23007 MCC_CD_LABELER, ignore
23008 MCC_MUSICEX_MANAGER ignore
23009 MCC_PLUGIN_MANAGER,, ignore
23010 MCC_SKIN_MANAGER ignore
23011 MCC_OPTIONS int nPageID
23012 MCC_RENAME_CD_FILES, ignore
23013 MCC_WMLICENSE_MANAGER ignore
23014 MCC_OBSOLETE_23014 ignore
23015 MCC_HANDHELD_UPLOAD loword: nDeviceSessionID (0 gets default), hiword: flags (1: sync only; 2: show warnings)
23016 MCC_HANDHELD_UPDATE_UPLOAD_WORKER_FINISHED int nDeviceSessionID
23017 MCC_HANDHELD_CLOSE_DEVICE int nDeviceSessionID
23018 MCC_HANDHELD_SHOW_OPTIONS int nDeviceSessionID
23019 MCC_HANDHELD_INFO_DUMP BOOL bShowInfo
23020 MCC_IMPORT_AUTO_RUN_NOW ignore
23021 MCC_IMPORT_AUTO_CONFIGURE ignore
23022 MCC_HANDHELD_EJECT int nDeviceSessionID
23023 MCC_RECORD_TV ignore
23024 MCC_FIND_AND_REPLACE ignore
23025 MCC_CLEAN_PROPERTIES ignore
23026 MCC_FILL_TRACK_ORDER ignore
23027 MCC_MOVE_COPY_FIELDS ignore
23028 MCC_REMOVE_TAGS ignore
23029 MCC_UPDATE_TAGS_FROM_DB ignore
23030 MCC_UPDATE_DB_FROM_TAGS ignore
23031 MCC_LOOKUP_TRACK_INFO_FROM_INTERNET ignore
23032 MCC_SUBMIT_TRACK_INFO_TO_INTERNET ignore
23033 MCC_GRACENOTE_MORE_LIKE_THIS_SONG ignore
23034 MCC_FILL_PROPERTIES_FROM_FILENAME ignore
23035 MCC_RENAME_FILES_FROM_PROPERTIES ignore
23036 MCC_COVER_ART_ADD_FROM_FILE ignore
23037 MCC_COVER_ART_QUICK_ADD_FROM_FILE ignore
23038 MCC_COVER_ART_GET_FROM_INTERNET ignore
23039 MCC_COVER_ART_SUBMIT_TO_INTERNET ignore
23040 MCC_COVER_ART_GET_FROM_SCANNER ignore
23041 MCC_COVER_ART_SELECT_SCANNER ignore
23042 MCC_COVER_ART_GET_FROM_CLIPBOARD ignore
23043 MCC_COVER_ART_COPY_TO_CLIPBOARD ignore
23044 MCC_COVER_ART_REMOVE ignore
23045 MCC_COVER_ART_PLAY ignore
23046 MCC_COVER_ART_SAVE_TO_EXTERNAL_FILE ignore
23047 MCC_COVER_ART_REBUILD_THUMBNAIL ignore

Help

24000 MCC_HELP_CONTENTS, ignore
24001 MCC_HELP_HOWTO_IMPORT_FILES, ignore
24002 MCC_HELP_HOWTO_PLAY_FILES, ignore
24003 MCC_HELP_HOWTO_RIP, ignore
24004 MCC_HELP_HOWTO_BURN, ignore
24005 MCC_HELP_HOWTO_ORGANIZE_FILES, ignore
24006 MCC_HELP_HOWTO_VIEW_SCHEMES, ignore
24007 MCC_HELP_HOWTO_MANAGE_PLAYLISTS, ignore
24008 MCC_HELP_HOWTO_EDIT_PROPERTIES, ignore
24009 MCC_HELP_HOWTO_FIND, ignore
24010 MCC_HELP_HOWTO_CONFIGURE, ignore
24011 MCC_CHECK_FOR_UPDATES, ignore
24012 MCC_BUY, ignore
24013 MCC_INSTALL_LICENSE, ignore
24014 MCC_REGISTRATION_INFO, ignore
24015 MCC_PLUS_FEATURES, ignore
24016 MCC_INTERACT, ignore
24017 MCC_SYSTEM_INFO, ignore
24018 MCC_ABOUT, ignore
24019 MCC_CONFIGURE_DEBUG_LOGGING, ignore
24020 MCC_WIKI, ignore
24021 MCC_TEST, ignore
24022 MCC_SHOW_EULA, ignore
24023 MCC_BENCHMARK, ignore

Tree

25000 MCC_ADD_VIEW_SCHEME, ignore
25001 MCC_EDIT_VIEW_SCHEME, ignore
25002 MCC_OBSOLETE_25002, ignore
25003 MCC_OBSOLETE_25003, ignore
25004 MCC_OBSOLETE_25004, ignore
25005 MCC_OBSOLETE_25005, ignore
25006 MCC_OBSOLETE_25006, ignore
25007 MCC_OBSOLETE_25007, ignore
25008 MCC_TREE_ADD_DIRECTORY, ignore
25009 MCC_TREE_IMPORT, ignore
25010 MCC_TREE_ADD_CD_FOLDER, ignore
25011 MCC_UPDATE_FROM_CD_DATABASE, ignore
25012 MCC_SUBMIT_TO_CD_DATABASE, ignore
25013 MCC_TREE_RIP, ignore
25014 MCC_CLEAR_PLAYING_NOW0: all files; 1: leave playing file
25015 MCC_COPY_LISTENING_TO, BOOL bPaste
25016 MCC_TREE_SET_EXPANDED0: collapsed; 1: expanded
25017MCC_RESET_VIEW_SCHEMES, ignore
25018 MCC_TREE_ERASE_CD_DVD, ignore
25019 MCC_UPDATE_FROM_CDPLAYER_INI, ignore
25020 MCC_TREE_EJECT, ignore
25021 MCC_TREE_ADD_VIRTUAL_DEVICE, ignore
25022 MCC_TREE_RENAME_PLAYLIST int nPlaylistID
25023 MCC_TWITTER_LISTENING_TO ignore

List

26000 MCC_LIST_UPDATE_ORDERignore
26001 MCC_LIST_SHUFFLE_ORDERignore
26002 MCC_LIST_IMPORTignore
26003 MCC_LIST_REMOVE_ORDERignore
26004 MCC_LOCATE_FILEint nLocation (-1: on disk (internal); -2: on disk (external); 0-n: library field index)
26005 MCC_LIST_MOVE_DISK_FILESignore
26006 MCC_LIST_INCREMENT_SELECTIONint nDelta
26007 MCC_LIST_REMOVE_DUPLICATESignore
26008 MCC_LIST_AUTO_SIZE_COLUMN int nColumn, zero-based column index (-1: all)
26009 MCC_LIST_CUSTOMIZE_VIEWignore
26010 MCC_LIST_COPY_DISK_FILESignore
26011 MCC_LIST_SET_RIP_CHECK0: uncheck, 1: check, -1: toggle
26012 MCC_LIST_DOWNLOADignore
26013 MCC_LIST_GET_LIST_POINTERignore
26014 MCC_LOCATE_STACKignore
26015 MCC_SET_AS_STACK_TOPignore
26016 MCC_EXPAND_STACKignore
26017 MCC_COLLAPSE_STACKignore
26018 MCC_AUTOSTACK0: by name, 1: artist, album, name, 2: Artist, Album, Track # and Name
26019 MCC_CHECK_STACKSignore
26020 MCC_STACKint nZeroBasedSelection
26021 MCC_UNSTACKignore
26022 MCC_ADD_TO_STACKignore
26023 MCC_PANE_RESET_SELECTIONint nPaneIndex (-1 resets all)
26024 MCC_LIST_REMOVE_ALLignore
26025 MCC_LIST_LOCKBOOL bLock (-1 toggles)
26026 MCC_PANE_SET_EXPANDEDloword: nPaneIndex, hiword: 0: collapsed; 1: expanded

System

27000 MCC_KEYSTROKE int nKeyCode
27001 MCC_SHUTDOWN, ignore

Playback Engine

28000 MCC_PLAYBACK_ENGINE_ZOOM_IN = 28000 [ignore]
28001 MCC_PLAYBACK_ENGINE_ZOOM_OUT [ignore]
28002 MCC_PLAYBACK_ENGINE_UP [ignore]
28003 MCC_PLAYBACK_ENGINE_DOWN [ignore]
28004 MCC_PLAYBACK_ENGINE_LEFT [ignore]
28005 MCC_PLAYBACK_ENGINE_RIGHT [ignore]
28006 MCC_PLAYBACK_ENGINE_ENTER [ignore]
28007 MCC_PLAYBACK_ENGINE_FIRST [ignore]
28008 MCC_PLAYBACK_ENGINE_LAST [ignore]
28009 MCC_PLAYBACK_ENGINE_NEXT [ignore]
28010 MCC_PLAYBACK_ENGINE_PREVIOUS [ignore]
28011 MCC_PLAYBACK_ENGINE_PAUSE BOOL bPause (-1 toggles)
28012 MCC_IMAGE_PAN_AND_ZOOM BOOL bPanAndZoom (-1 toggles)
28013 MCC_IMAGE_TOGGLE_EFFECT int nDelta
28014 MCC_IMAGE_RAPID_ZOOM int nRapidZoom
28015 MCC_DVD_SET_AUDIO_STREAM int nAudioStream (-1 toggles)
28016 MCC_DVD_SHOW_MENU [ignore]
28017 MCC_TV_RECORD [ignore]
28018 MCC_TV_SNAPSHOT [ignore]
28019 MCC_TV_CHANGE_STANDARD [ignore]
28020 MCC_PLAYBACK_ENGINE_OSD_VIDEO_PROC_AMP int nIndex (0 for brightness, 1 for contrast, etc. -1 cycles)
28021 MCC_PLAYBACK_ENGINE_SET_CUR_VIDEO_PROC_AMP int nStep (... -2, -1, 1, 2, etc. 0 is invalid and will default to 1)
28022 MCC_PLAYBACK_ENGINE_SET_ASPECT_RATIO -1: cycles; 0 - 8: selects individual Aspect Ratio Modes
28023 MCC_PLAYBACK_ENGINE_SCROLL_UP, [ignore]
28024 MCC_PLAYBACK_ENGINE_SCROLL_DOWN, [ignore]
28025 MCC_PLAYBACK_ENGINE_SCROLL_LEFT [ignore]
28026 MCC_PLAYBACK_ENGINE_SCROLL_RIGHT [ignore]
28027 MCC_TV_SET_SAVE_TIME_SHIFTING int nSaveMode (0 - 6, -1 cycles by incrementing, -2 cycles by decrementing)
28028 MCC_PLAYBACK_ENGINE_ZOOM_TO_PRESET int 0 to fit window, 1 for 100%, 2 for 200%
28029 MCC_TV_SCAN_PROGRAMMING_EVENTS [ignore]
28030 MCC_TV_CHANGE_CHANNEL_KEY int nKey
28031 MCC_TV_PLAY_CHANNEL_POSITION int Playlist position

Other

30000 MCC_RELOAD_MC_VIEW = 30000, ignore
30001 MCC_CUSTOMIZE_TOOLBAR, ignore
30002 MCC_PLAY_TV, ignore
30003 MCC_UPDATE_WEBPAGES, ignore
30004 MCC_SHOW_RUNNING_MC, BOOL bToggleVisibility
30005 MCC_SHOW_MENU, int nMenuID
30006 MCC_TUNE_TV, ignore
30007 MCC_PLAY_PLAYLIST, int nPlaylistID
30008 MCC_SENDTO_TOOL, 0: labeler; 1: media editor; 2: default editor; 3: ftp upload; 4: email
30009 MCC_SHOW_VIEW_INFO, new CMCViewInfo * (for internal use only)
30010 MCC_OBSOLETE_30010 ignore
30011 MCC_DEVICE_CHANGED new DEVICE_CHANGE_INFO * (for internal use only)
30012 MCC_CONFIGURE_THEATER_VIEW, ignore
30013 MCC_SET_STATUSTEXT, wchar * pstrText (note: memory will be deleted by receiver)
30014 MCC_UPDATE_UI_AFTER_ACTIVE_WINDOW_CHANGE, ignore
30015 MCC_REENUM_PORTABLE_DEVICES, BOOL bDeviceConnected
30016 MCC_PLAY_ADVANCED, PLAY_COMMAND * pCommand (deleted by receiver)
30017 MCC_UPDATE_STATUS_BAR, ignore
30018 MCC_REQUEST_PODCAST_UPDATE ignore
30019 MCC_REQUEST_PODCAST_PURGE ignore
30020 MCC_AUDIBLE_ACTIVATE_PC BOOL bActivate (TRUE: activate, FALSE: deactivate)]
30021 MCC_SHOW_INVALID_CD_VOLUME_WARNING TCHAR cDriveLetter

Image tools

31000 MCC_IMAGE_SET_DESKTOP_BACK, ignore
31001 MCC_IMAGE_ROTATE_LEFT, ignore
31002 MCC_IMAGE_ROTATE_RIGHT, ignore
31003 MCC_IMAGE_ROTATE_UPSIDEDOWN ignore
31004 MCC_IMAGE_RESIZE, ignore
31005 MCC_IMAGE_EDIT, ignore

Query

32000 MCC_QUERY_SECTION,

Commands

These are used internally (they get routed in the standard way).

33000 MCC_GET_SELECTED_FILES = 33000, loword: GET_SELECTION_MODES Mode, hiword: short nFlags (1: for playback)
33001 MCC_PRINTVIEW, ignore
33002 MCC_OUTPUT, ignore
33003 MCC_SETFOCUS, ignore
33004 MCC_SELECT_FILES, CMediaArray *
33005 MCC_DOUBLE_CLICK, ignore
33006 MCC_PLAY_OR_SHOW, ignore
33007 MCC_SHOW_CURRENT_FILE, int nFlags (1: force, 2: select)
33008 MCC_UPDATE_SIZES, ignore
33009 MCC_BUY_SELECTED_TRACKS, int nPurchaseFlags
33010 MCC_BUY_ALL_TRACKS, int nPurchaseFlags
33011 MCC_BUY_ALBUM, int nPurchaseFlags
33012 MCC_UPDATE_AFTER_PLUGIN_INSTALLED, ignore
33013 MCC_UPDATE_AFTER_SKIN_INSTALLED BOOL bMiniView

Notifications

(used internally -- go to all view windows)

34000 MCC_NOTIFY_FONT_CHANGED, ignore
34001 MCC_NOTIFY_VIEW_CHANGED, ignore
34002 MCC_NOTIFY_BEFORE_VIEW_INDEX_CHANGED, ignore
34003 MCC_NOTIFY_VIEW_INDEX_CHANGED, ignore
34004 MCC_NOTIFY_PLAYER_INFO_CHANGED, PLAYER_INFO_CHANGES nChange
34005 MCC_NOTIFY_TOOLTIPS_CHANGED, BOOL bEnabled
34006 MCC_NOTIFY_OPTIONS_CHANGED, ignore
34007 MCC_UPDATE, int nFlags
34008 MCC_NOTIFY_FOCUS_CHANGED, ignore
34009 MCC_SAVE_PROPERTIES, UI_MODES NewMode
34010 MCC_NOTIFY_SELECTION_CHANGED, HWND hwndSource
34011 MCC_NOTIFY_FILE_CHANGED, int nMFKey (-1: invalidates all files)
34012 MCC_NOTIFY_FILE_STATUS_CHANGED, int nMFKey (-1: invalidates all files)
34013 MCC_NOTIFY_FILE_ENSURE_VISIBLE, int nMFKey
34014 MCC_NOTIFY_GET_TAB_HWNDS, ignore
34015 MCC_NOTIFY_BURNER_QUEUE_CHANGED, int nFlags (1: folder change)
34016 MCC_NOTIFY_BURNER_PROGRESS_CHANGED, int nPercentage
34017 MCC_NOTIFY_BURNER_STATUS_CHANGED, LPCTSTR pStatus
34018 MCC_NOTIFY_BURNER_STARTED, ignore
34019 MCC_NOTIFY_BURNER_FINISHED, ignore
34020 MCC_NOTIFY_BURNER_FAILED, LPCTSTR pError
34021 MCC_NOTIFY_BURNER_CLOSE_UI, ignore
34022 MCC_NOTIFY_BURNER_PREPARE_FOR_NEXT_COPY, LPCTSTR pStatus
34023 MCC_NOTIFY_RIP_STARTED, ignore
34024 MCC_NOTIFY_RIP_FINISHED, ignore
34025 MCC_NOTIFY_RIP_FAILED, LPCTSTR pError
34026 MCC_NOTIFY_RIP_PROGRESS_CHANGED, ignore
34027 MCC_NOTIFY_RIP_QUEUE_CHANGED, ignore
34028 MCC_NOTIFY_DVD_RIP_STARTED, ignore
34029 MCC_NOTIFY_DVD_RIP_FINISHED, ignore
34030 MCC_NOTIFY_DVD_RIP_FAILED, int nErrorCode
34031 MCC_NOTIFY_DVD_RIP_PROGRESS_CHANGED, int nPercent
34032 MCC_NOTIFY_DOWNLOAD_FINISHED, int nMFKey (-1: unknown)
34033 MCC_NOTIFY_DOWNLOAD_FAILED, int nMFKey (-1: unknown)
34034 MCC_NOTIFY_DOWNLOAD_STATUS_CHANGED, LPCTSTR pStatus
34035 MCC_NOTIFY_STATUS_CHECKER_COMPLETE, ignore
34036 MCC_NOTIFY_ZONE_CHANGED, ignore
34037 MCC_NOTIFY_DISPLAY_OWNER_CHANGED, HWND hwndOwner
34038 MCC_NOTIFY_AFTER_FIRST_UPDATE_LAYOUT_WINDOW, ignore
34039 MCC_NOTIFY_AFTER_FIRST_UPDATE_APPLY_VIEW_STATE, ignore
34040 MCC_NOTIFY_PROCESS_TIME_REMAINING, int nSecondsRemaining
34041 MCC_NOTIFY_UI_UPDATE_ENABLE_DISABLE_STATES, ignore
34042 MCC_NOTIFY_UI_SKIN_CHANGED, ignore
34043 MCC_UPDATE_WINDOW_LAYOUT, ignore
34044 MCC_NOTIFY_SAVE_UI_BEFORE_SHUTDOWN, ignore
34045 MCC_NOTIFY_UPDATE_CONTROL_BARS, ignore
34046 MCC_NOTIFY_PLAYLIST_FILES_CHANGED, int nPlaylistID
34047 MCC_NOTIFY_PLAYLIST_INFO_CHANGED, int nPlaylistID
34048 MCC_NOTIFY_PLAYLIST_ADDED_INTERNAL, int nPlaylistID
34049 MCC_NOTIFY_PLAYLIST_ADDED_BY_USER, int nPlaylistID
34050 MCC_NOTIFY_PLAYLIST_REMOVED, int nPlaylistID
34051 MCC_NOTIFY_PLAYLIST_COLLECTION_CHANGED, ignore
34052 MCC_NOTIFY_PLAYLIST_PROPERTIES_CHANGED, int nPlaylistID
34053 MCC_NOTIFY_HANDHELD_UPLOAD_STARTED, int nDeviceSessionID (0 gets default)
34054 MCC_NOTIFY_HANDHELD_NEW_DEVICE_ARRIVED, int nDeviceSessionID
34055 MCC_NOTIFY_HANDHELD_AFTER_DEVICE_CHANGED, ignore
34056 MCC_NOTIFY_HANDHELD_QUEUE_CHANGED, ignore
34057 MCC_NOTIFY_HANDHELD_INFO_COMPLETE, ignore
34058 MCC_NOTIFY_HANDHELD_AFTER_UPLOAD_FINISHED, ignore
34059 MCC_NOTIFY_COMPACT_MEMORY, ignore
34060 MCC_NOTIFY_SEARCH_CHANGED, ignore
34061 MCC_NOTIFY_SEARCH_CONTEXT_CHANGED, ignore
34062 MCC_NOTIFY_UPDATE_SHOPPING_CART, CServicePlugin * pServicePlugin
34063 MCC_NOTIFY_UPDATE_NAVIGATION_TRAIL, ignore
34064 MCC_NOTIFY_IMPORT_STARTED, BOOL bSilent
34065 MCC_NOTIFY_IMPORT_FINISHED, BOOL bSilent
34066 MCC_NOTIFY_ROTATED_IMAGES, MFKEY nKey
34067 MCC_NOTIFY_SERVICE_LOGIN_STATE_CHANGE, BOOL bLoggedIn
34068 MCC_NOTIFY_MYGAL_PROGRESS, ignore
34069 MCC_NOTIFY_MYGAL_DONE, ignore

Zones

To issue a Playback command to a specific zone, mask these values with the parameter:

Current: 0         (0x00000000 hex)
Zone 0:  16777216  (0x01000000 hex)
Zone 1:  33554432  (0x02000000 hex)
Zone 2:  50331648  (0x03000000 hex)
Zone 3:  67108864  (0x04000000 hex)
Zone 4:  83886080  (0x05000000 hex)
Zone 5:  100663296 (0x06000000 hex)
...
Zone 31: 520093696 (0x1F000000 hex)

For the geeks, the actual parameter is bits 0-23 and the Zone is bits 24-29 of the 32-bit parameter (see the C++ macros below if you like). If bit 32 is set, Media Center assumes you passed in a simple negative number, so the Zone portion is discarded.

Creating the final parameter value:

For parameters >= 0
 final parameter value = Zone mask + parameter

For parameters < 0
 final parameter value = Zone mask + (16777216 + parameter)

Example:

parameter -1 to Zone 3: 67108864 + (16777216 + -1) = 83886079
Zone: OperationMCC CommandWparamLparam
Z0: Play/PauseMCC_PLAY_PAUSE10000 16777216
Z0: Play Track from BeginningMCC_PLAY10001 16777216
Z0: StopMCC_STOP10002 16777216
Z0: NextMCC_NEXT10003 16777216
Z0: PreviousMCC_PREVIOUS10004 16777216
Z0: Shuffle Mode-ToggleMCC_SHUFFLE10005 16777216
Z0: ReShuffle-Jump to PNMCC_SHUFFLE1000516777217
Z0: ReShuffle-No Jump to PNMCC_SHUFFLE1000516777218
Z0: Continuous Mode-ToggleMCC_CONTINUOUS10006 16777216
Z0: FFMCC_FAST_FORWARD10008 16777216
Z0: RewMCC_REWIND10009 16777216
Z0: Play Seq. #MCC_PLAY_CPLDB_INDEX10015 16777216
Z0: MuteMCC_VOLUME_MUTE10017 16777216
Z0: Vol +5MCC_VOLUME_UP1001816777221
Z0: Vol -5MCC_VOLUME_DOWN1001916777221
Z0: Vol 0MCC_VOLUME_SET10020 16777216
Z0: Vol 25MCC_VOLUME_SET1002016777241
Z0: Vol 50MCC_VOLUME_SET1002016777266
Z0: Vol 75MCC_VOLUME_SET1002016777291
Z0: Vol 100MCC_VOLUME_SET1002016777316
Z0: Rating-?MCC_SET_CURRENTLY_PLAYING_RATING10023 16777216
Z0: Rating-1MCC_SET_CURRENTLY_PLAYING_RATING1002316777217
Z0: Rating-2MCC_SET_CURRENTLY_PLAYING_RATING1002316777218
Z0: Rating-3MCC_SET_CURRENTLY_PLAYING_RATING1002316777219
Z0: Rating-4MCC_SET_CURRENTLY_PLAYING_RATING1002316777220
Z0: Rating-5MCC_SET_CURRENTLY_PLAYING_RATING1002316777221
 
Z1: Play/PauseMCC_PLAY_PAUSE10000 33554432
Z1: Play Track from BeginningMCC_PLAY10001 33554432
Z1: StopMCC_STOP10002 33554432
Z1: NextMCC_NEXT10003 33554432
Z1: PreviousMCC_PREVIOUS10004 33554432
Z1: Shuffle Mode-ToggleMCC_SHUFFLE10005 33554432
Z1: ReShuffle-Jump to PNMCC_SHUFFLE1000533554433
Z1: ReShuffle-No Jump to PNMCC_SHUFFLE1000533554434
Z1: Continuous Mode-ToggleMCC_CONTINUOUS10006 33554432
Z1: FFMCC_FAST_FORWARD10008 33554432
Z1: RewMCC_REWIND10009 33554432
Z1: Play Seq. #MCC_PLAY_CPLDB_INDEX10015 33554432
Z1: MuteMCC_VOLUME_MUTE10017 33554432
Z1: Vol +5MCC_VOLUME_UP1001833554437
Z1: Vol -5MCC_VOLUME_DOWN1001933554437
Z1: Vol 0MCC_VOLUME_SET10020 33554432
Z1: Vol 25MCC_VOLUME_SET1002033554457
Z1: Vol 50MCC_VOLUME_SET1002033554482
Z1: Vol 75MCC_VOLUME_SET1002033554507
Z1: Vol 100MCC_VOLUME_SET1002033554532
Z1: Rating-?MCC_SET_CURRENTLY_PLAYING_RATING10023 33554432
Z1: Rating-1MCC_SET_CURRENTLY_PLAYING_RATING1002333554433
Z1: Rating-2MCC_SET_CURRENTLY_PLAYING_RATING1002333554434
Z1: Rating-3MCC_SET_CURRENTLY_PLAYING_RATING1002333554435
Z1: Rating-4MCC_SET_CURRENTLY_PLAYING_RATING1002333554436
Z1: Rating-5MCC_SET_CURRENTLY_PLAYING_RATING1002333554437
 
Z2: Play/PauseMCC_PLAY_PAUSE10000 50331648
Z2: Play Track from BeginningMCC_PLAY10001 50331648
Z2: StopMCC_STOP10002 50331648
Z2: NextMCC_NEXT10003 50331648
Z2: PreviousMCC_PREVIOUS10004 50331648
Z2: Shuffle Mode-ToggleMCC_SHUFFLE10005 50331648
Z2: ReShuffle-Jump to PNMCC_SHUFFLE1000550331649
Z2: ReShuffle-No Jump to PNMCC_SHUFFLE1000550331650
Z2: Continuous Mode-ToggleMCC_CONTINUOUS10006 50331648
Z2: FFMCC_FAST_FORWARD10008 50331648
Z2: RewMCC_REWIND10009 50331648
Z2: Play Seq. #MCC_PLAY_CPLDB_INDEX10015 50331648
Z2: MuteMCC_VOLUME_MUTE10017 50331648
Z2: Vol +5MCC_VOLUME_UP1001850331653
Z2: Vol -5MCC_VOLUME_DOWN1001950331653
Z2: Vol 0MCC_VOLUME_SET10020 50331648
Z2: Vol 25MCC_VOLUME_SET1002050331673
Z2: Vol 50MCC_VOLUME_SET1002050331698
Z2: Vol 75MCC_VOLUME_SET1002050331723
Z2: Vol 100MCC_VOLUME_SET1002050331748
Z2: Rating-?MCC_SET_CURRENTLY_PLAYING_RATING10023 50331648
Z2: Rating-1MCC_SET_CURRENTLY_PLAYING_RATING1002350331649
Z2: Rating-2MCC_SET_CURRENTLY_PLAYING_RATING1002350331650
Z2: Rating-3MCC_SET_CURRENTLY_PLAYING_RATING1002350331651
Z2: Rating-4MCC_SET_CURRENTLY_PLAYING_RATING1002350331652
Z2: Rating-5MCC_SET_CURRENTLY_PLAYING_RATING1002350331653
 
Z3: Play/PauseMCC_PLAY_PAUSE1000067108864
Z3: Play Track from BeginningMCC_PLAY10001 67108864
Z3: StopMCC_STOP10002 67108864
Z3: NextMCC_NEXT10003 67108864
Z3: PreviousMCC_PREVIOUS10004 67108864
Z3: Shuffle Mode-ToggleMCC_SHUFFLE10005 67108864
Z3: ReShuffle-Jump to PNMCC_SHUFFLE1000567108865
Z3: ReShuffle-No Jump to PNMCC_SHUFFLE1000567108866
Z3: Continuous Mode-ToggleMCC_CONTINUOUS10006 67108864
Z3: FFMCC_FAST_FORWARD10008 67108864
Z3: RewMCC_REWIND10009 67108864
Z3: Play Seq. #MCC_PLAY_CPLDB_INDEX10015 67108864
Z3: MuteMCC_VOLUME_MUTE10017 67108864
Z3: Vol +5MCC_VOLUME_UP1001867108869
Z3: Vol -5MCC_VOLUME_DOWN1001967108869
Z3: Vol 0MCC_VOLUME_SET10020 67108864
Z3: Vol 25MCC_VOLUME_SET1002067108889
Z3: Vol 50MCC_VOLUME_SET1002067108914
Z3: Vol 75MCC_VOLUME_SET1002067108939
Z3: Vol 100MCC_VOLUME_SET1002067108964
Z3: Rating-?MCC_SET_CURRENTLY_PLAYING_RATING10023 67108864
Z3: Rating-1MCC_SET_CURRENTLY_PLAYING_RATING1002367108865
Z3: Rating-2MCC_SET_CURRENTLY_PLAYING_RATING1002367108866
Z3: Rating-3MCC_SET_CURRENTLY_PLAYING_RATING1002367108867
Z3: Rating-4MCC_SET_CURRENTLY_PLAYING_RATING1002367108868
Z3: Rating-5MCC_SET_CURRENTLY_PLAYING_RATING1002367108869
 
Z4: Play/PauseMCC_PLAY_PAUSE10000 83886080
Z4: Play Track from BeginningMCC_PLAY10001 83886080
Z4: StopMCC_STOP10002 83886080
Z4: NextMCC_NEXT10003 83886080
Z4: PreviousMCC_PREVIOUS10004 83886080
Z4: Shuffle Mode-ToggleMCC_SHUFFLE10005 83886080
Z4: ReShuffle-Jump to PNMCC_SHUFFLE1000583886081
Z4: ReShuffle-No Jump to PNMCC_SHUFFLE1000583886082
Z4: Continuous Mode-ToggleMCC_CONTINUOUS10006 83886080
Z4: FFMCC_FAST_FORWARD10008 83886080
Z4: RewMCC_REWIND10009 83886080
Z4: Play Seq. #MCC_PLAY_CPLDB_INDEX10015 83886080
Z4: MuteMCC_VOLUME_MUTE10017 83886080
Z4: Vol +5MCC_VOLUME_UP1001883886085
Z4: Vol -5MCC_VOLUME_DOWN1001983886085
Z4: Vol 0MCC_VOLUME_SET10020 83886080
Z4: Vol 25MCC_VOLUME_SET1002083886105
Z4: Vol 50MCC_VOLUME_SET1002083886130
Z4: Vol 75MCC_VOLUME_SET1002083886155
Z4: Vol 100MCC_VOLUME_SET1002083886180
Z4: Rating-?MCC_SET_CURRENTLY_PLAYING_RATING10023 83886080
Z4: Rating-1MCC_SET_CURRENTLY_PLAYING_RATING1002383886081
Z4: Rating-2MCC_SET_CURRENTLY_PLAYING_RATING1002383886082
Z4: Rating-3MCC_SET_CURRENTLY_PLAYING_RATING1002383886083
Z4: Rating-4MCC_SET_CURRENTLY_PLAYING_RATING1002383886084
Z4: Rating-5MCC_SET_CURRENTLY_PLAYING_RATING1002383886085
 
Z5: Play/PauseMCC_PLAY_PAUSE10000 100663296
Z5: Play Track from BeginningMCC_PLAY10001 100663296
Z5: StopMCC_STOP10002 100663296
Z5: NextMCC_NEXT10003 100663296
Z5: PreviousMCC_PREVIOUS10004 100663296
Z5: Shuffle Mode-ToggleMCC_SHUFFLE10005 100663296
Z5: ReShuffle-Jump to PNMCC_SHUFFLE10005100663297
Z5: ReShuffle-No Jump to PNMCC_SHUFFLE10005100663298
Z5: Continuous Mode-ToggleMCC_CONTINUOUS10006 100663296
Z5: FFMCC_FAST_FORWARD10008 100663296
Z5: RewMCC_REWIND10009 100663296
Z5: Play Seq. #MCC_PLAY_CPLDB_INDEX10015 100663296
Z5: MuteMCC_VOLUME_MUTE10017 100663296
Z5: Vol +5MCC_VOLUME_UP10018100663301
Z5: Vol -5MCC_VOLUME_DOWN10019100663301
Z5: Vol 0MCC_VOLUME_SET10020 100663296
Z5: Vol 25MCC_VOLUME_SET10020100663321
Z5: Vol 50MCC_VOLUME_SET10020100663346
Z5: Vol 75MCC_VOLUME_SET10020100663371
Z5: Vol 100MCC_VOLUME_SET10020100663396
Z5: Rating-?MCC_SET_CURRENTLY_PLAYING_RATING10023 100663296
Z5: Rating-1MCC_SET_CURRENTLY_PLAYING_RATING10023100663297
Z5: Rating-2MCC_SET_CURRENTLY_PLAYING_RATING10023100663298
Z5: Rating-3MCC_SET_CURRENTLY_PLAYING_RATING10023100663299
Z5: Rating-4MCC_SET_CURRENTLY_PLAYING_RATING10023100663300
Z5: Rating-5MCC_SET_CURRENTLY_PLAYING_RATING10023100663301

Other Defines

// the WM_APP based message (WM_APP = 32768, so WM_MC_COMMAND = 33768)
#define WM_MC_COMMAND (WM_APP + 1000)

// extended MC_COMMAND message that takes a structure with extra information (internal use only)
#define WM_MC_COMMAND_EX (WM_APP + 1001)

// return value for unhandled MCC commands
#define MCC_UNHANDLED 0

// flags for command enable, disable, and check
enum MCC_UPDATEUI_FLAGS
{
    MCC_UPDATEUI_ENABLE  = 1,
    MCC_UPDATEUI_DISABLE = 2,
    MCC_UPDATEUI_PRESSED = 4,
};

Helper macros

#define IS_MCC_COMMAND_IN_RANGE(INDEX, FIRST, LAST) (((abs((int)INDEX)) >= FIRST) && ((abs((int)INDEX)) < LAST) || ((abs((int)INDEX)) >= FIRST + MCC_CUSTOMIZATION_OFFSET) && ((abs((int)INDEX)) < LAST + MCC_CUSTOMIZATION_OFFSET))
#define IS_MCC_COMMAND_IN_SECTION(INDEX, FIRST) IS_MCC_COMMAND_IN_RANGE(INDEX, FIRST, FIRST + 1000)
#define IS_VALID_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_RANGE(INDEX, MCC_FIRST, MCC_LAST)
#define IS_PLAYBACK_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_PLAYBACK_SECTION)
#define IS_FILE_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_FILE_SECTION)
#define IS_EDIT_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_EDIT_SECTION)
#define IS_VIEW_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_VIEW_SECTION)
#define IS_TOOL_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_TOOLS_SECTION)
#define IS_HELP_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_HELP_SECTION)
#define IS_TREE_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_TREE_SECTION)
#define IS_LIST_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_LIST_SECTION)
#define IS_SYSTEM_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_SYSTEM_SECTION)
#define IS_PLAYBACK_ENGINE_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_PLAYBACK_ENGINE_SECTION)
#define IS_IMAGE_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_IMAGE_SECTION)
#define IS_INTERNAL_COMMAND_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_COMMANDS_SECTION)
#define IS_NOTIFY_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_SECTION(INDEX, MCC_NOTIFICATIONS_SECTION)
#define IS_CUSTOMIZATION_MCC_COMMAND(INDEX) IS_MCC_COMMAND_IN_RANGE(INDEX, MCC_FIRST + MCC_CUSTOMIZATION_OFFSET, MCC_LAST + MCC_CUSTOMIZATION_OFFSET)

#define MAKE_MCC_PLAYBACK_PARAM(PARAM, ZONE) (((ZONE) == -1) ? ((PARAM) & 0x00FFFFFF) : ((((ZONE) + 1) << 24) & 0xFF000000) | ((PARAM) & 0x00FFFFFF))
#define GET_MCC_PLAYBACK_PARAM(PARAM) (((PARAM) & 0x400000) ? ((PARAM) & 0xFFFFFF) - 0x1000000 : ((PARAM) & 0xFFFFFF))
#define GET_MCC_PLAYBACK_ZONE(PARAM) (((PARAM) & 0x80000000) ? -1 : (((PARAM) >> 24) - 1))

For Internal Use

// update flags
#define MCC_UPDATE_FLAG_THUMBNAILS                           (1 << 0)
#define MCC_UPDATE_FLAG_FILE_PROPERTIES                      (1 << 1)
#define MCC_UPDATE_FLAG_FILE_ADDED_OR_REMOVED                (1 << 2)
#define MCC_UPDATE_FLAG_TREE_STRUCTURE                       (1 << 3)
#define MCC_UPDATE_FLAG_REFILL_LIST                          (1 << 4)
#define MCC_UPDATE_FLAG_ITEM_DELETED                         (1 << 5)
#define MCC_UPDATE_FLAG_NO_PRESERVE_VIEW_STATE               (1 << 6)
#define MCC_UPDATE_FLAG_WEB_VIEW                             (1 << 7)

// update all
#define MCC_UPDATE_FLAG_ALL                                  (0x7FFFFFFF & ~(MCC_UPDATE_FLAG_NO_PRESERVE_VIEW_STATE))

// UI modes
enum UI_MODES
{
    // unknown
    UI_MODE_UNKNOWN = -2000,

    // internal modes
    UI_MODE_INTERNAL_NO_UI = -1000,
    UI_MODE_INTERNAL_STANDARD,
    UI_MODE_INTERNAL_MINI_FREEFORM,
    UI_MODE_INTERNAL_MINI_SLIM,
    UI_MODE_INTERNAL_DISPLAY_WINDOWED,
    UI_MODE_INTERNAL_DISPLAY_FULLSCREEN,
    UI_MODE_INTERNAL_THEATER,

    // toggles, shortcuts, etc.
    UI_MODE_SHORTCUT_TOGGLE_DISPLAY_AND_LAST_USER_INPUT_MODE = -7,
    UI_MODE_SHORTCUT_TOGGLE_DISPLAY_EXCLUDE_THEATER_VIEW = -6,
    UI_MODE_SHORTCUT_TOGGLE_DISPLAY = -5,
    UI_MODE_SHORTCUT_LAST_SHUTDOWN = -4,
    UI_MODE_SHORTCUT_CURRENT = -3,
    UI_MODE_SHORTCUT_CLOSE_DISPLAY = -2,
    UI_MODE_SHORTCUT_NEXT = -1,

    // modes presented to the user
    UI_MODE_STANDARD = 0,
    UI_MODE_MINI,
    UI_MODE_DISPLAY,
    UI_MODE_THEATER,
    UI_MODE_COUNT,
};

// player changes
#define PLAYER_INFO_CHANGE_ALL                               0xFFFF
#define PLAYER_INFO_CHANGE_PLAYERSTATE                       (1 << 0)
#define PLAYER_INFO_CHANGE_VOLUME                            (1 << 1)
#define PLAYER_INFO_CHANGE_FILEINFO                          (1 << 2)
#define PLAYER_INFO_CHANGE_PLAYLISTSTATE                     (1 << 3)
#define PLAYER_INFO_CHANGE_EQCHANGE                          (1 << 4)
#define PLAYER_INFO_CHANGE_IMAGE                             (1 << 5)
#define PLAYER_INFO_CHANGE_PLAYING_FILE                      (1 << 6)

// player status codes
enum PLAYER_STATUS_CODES
{
    PLAYER_STATUS_CODE_BUFFERING,
    PLAYER_STATUS_CODE_LOCATING,
    PLAYER_STATUS_CODE_CONNECTING,
    PLAYER_STATUS_CODE_DOWNLOADING_CODEC,
    PLAYER_STATUS_CODE_ACQUIRING_LICENSE,
    PLAYER_STATUS_CODE_INDIVIDUALIZE_STARTING,
    PLAYER_STATUS_CODE_INDIVIDUALIZE_CONNECTING,
    PLAYER_STATUS_CODE_INDIVIDUALIZE_REQUESTING,
    PLAYER_STATUS_CODE_INDIVIDUALIZE_RECEIVING,
    PLAYER_STATUS_CODE_INDIVIDUALIZE_COMPLETED,
};

// theater view modes
enum SHOW_THEATER_VIEW_MODES
{
    SHOW_THEATER_VIEW_MODE_TOGGLE_THEATER_VIEW,
    SHOW_THEATER_VIEW_MODE_HOME,
    SHOW_THEATER_VIEW_MODE_PLAYING_NOW,
    SHOW_THEATER_VIEW_MODE_AUDIO,
    SHOW_THEATER_VIEW_MODE_IMAGES,
    SHOW_THEATER_VIEW_MODE_VIDEOS,
    SHOW_THEATER_VIEW_MODE_PLAYLISTS,
    SHOW_THEATER_VIEW_MODE_CD_DVD,
    SHOW_THEATER_VIEW_MODE_TV,
};

// get selection modes
enum GET_SELECTION_MODES
{
    GET_SELECTION_EXACT,
    GET_SELECTION_ALL_ON_NONE,
    GET_SELECTION_ALL_ON_ONE_OR_NONE,
    GET_SELECTION_ALL,
};