Media Center Core Commands

From JRiverWiki
Revision as of 10:26, 27 February 2008 by Gateley (talk | contribs) (File)

Jump to: navigation, search

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 in the SDK (in the Shared directory as MCCommands.h): Download the SDK

Note: 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
MC12.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

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_BROADCAST_PLAYLISTint nPlaylistID
20019MCC_STOP_BROADCAST_PLAYLISTint nPlaylistID
20020MCC_PLAYLIST_BROADCAST_OPTIONSint nPlaylistID
20021MCC_ADCAST_PLAYLISTint nPlaylistID
20022MCC_STOP_ADCAST_PLAYLISTint nPlaylistID
20023MCC_PLAYLIST_ADCAST_OPTIONSint nPlaylistID
20024MCC_IMPORT_PLAYLISTignore
20025MCC_LOAD_LIBRARYint nLibraryIndex
20026MCC_SYNC_LIBRARYignore
20027MCC_EMAIL_PODCAST_FEEDignore
20028MCC_LOAD_LIBRARY_READ_ONLYint nLibraryIndex (12.0.449)

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

View

EnumCommandParameter
22000MCC_TOGGLE_MODE-1: Next Mode, 0: Standard, 1: Mini, 2: Display, 3: Theater 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

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_SERVICES_MANAGER, 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

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

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

List

26000 MCC_LIST_UPDATE_ORDER, ignore
26001 MCC_LIST_SHUFFLE_ORDER, ignore
26002 MCC_LIST_IMPORT, ignore
26003 MCC_LIST_REMOVE_ORDER, ignore
26004 MCC_LOCATE_FILE, int nLocation (-1: on disk (internal); -2: on disk (external); 0-n: library field index)
26005 MCC_LIST_MOVE_DISK_FILES, ignore
26006 MCC_LIST_INCREMENT_SELECTION, int nDelta
26007 MCC_LIST_REMOVE_DUPLICATES, ignore
26008 MCC_LIST_AUTO_SIZE_COLUMN, int nColumn, zero-based column index (-1: all)
26009 MCC_LIST_CUSTOMIZE_VIEW, ignore
26010 MCC_LIST_COPY_DISK_FILES, ignore
26011 MCC_LIST_SET_RIP_CHECK, 0: uncheck, 1: check, -1: toggle
26012 MCC_LIST_DOWNLOAD, ignore
26013 MCC_LIST_GET_LIST_POINTER ignore
26014 MCC_LIST_UPDATE_AFTER_SIZE ignore

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_IMAGE_FIRST [ignore]
28008 MCC_IMAGE_LAST [ignore]
28009 MCC_IMAGE_NEXT [ignore]
28010 MCC_IMAGE_PREVIOUS [ignore]
28011 MCC_IMAGE_PAUSE_SLIDESHOW BOOL bPause (-1 toggles)
28012 MCC_IMAGE_AUTO_PAN BOOL bAutopan (-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]

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_SERVICES_HOME, 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)]

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

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,
};