ICommandSource Interface

Manages commands sent from a command source object to a user control.

Syntax

interface class ICommandSource

Members

Public Methods

Name Description
ICommandSource::AddCommandHandler Adds a command handler to a command source object.
ICommandSource::AddCommandRangeHandler Adds a group of command handlers to a command source object.
ICommandSource::AddCommandRangeUIHandler Adds a group of user interface command message handlers to a command source object.
ICommandSource::AddCommandUIHandler Adds a user interface command message handler to a command source object.
ICommandSource::PostCommand Posts a message without waiting for it to be processed.
ICommandSource::RemoveCommandHandler Removes a command handler from a command source object.
ICommandSource::RemoveCommandRangeHandler Removes a group of command handlers from a command source object.
ICommandSource::RemoveCommandRangeUIHandler Removes a group of user interface command message handlers from a command source object.
ICommandSource::RemoveCommandUIHandler Removes a user interface command message handler from a command source object.
ICommandSource::SendCommand Sends a message and waits for it to be processed before returning.

Remarks

When you host a user control in an MFC View, CWinFormsView Class routes commands and update command UI messages to the user control to allow it to handle MFC commands (for example, frame menu items and toolbar buttons). By implementing ICommandTarget Interface, you give the user control a reference to the ICommandSource object.

See How to: Add Command Routing to the Windows Forms Control for an example of how to use ICommandTarget.

For more information on using Windows Forms, see Using a Windows Form User Control in MFC.

Requirements

Header: afxwinforms.h (defined in assembly atlmfc\lib\mfcmifc80.dll)

ICommandSource::AddCommandHandler

Adds a command handler to a command source object.

void AddCommandHandler(
    unsigned int cmdID,
    CommandHandler^ cmdHandler);

Parameters

cmdID
The command ID. cmdHandler
A handle to the command handler method.

Remarks

This method adds the command handler cmdHandler to the command source object and maps the handler to cmdID. See How to: Add Command Routing to the Windows Forms Control for an example of how to use AddCommandHandler.

ICommandSource::AddCommandRangeHandler

Adds a group of command handlers to a command source object.

void AddCommandRangeHandler(
    unsigned int cmdIDMin,
    unsigned int cmdIDMax,
    CommandHandler^ cmdHandler);

Parameters

cmdIDMin
The beginning index of the command ID range. cmdIDMax
The ending index of the command ID range. cmdHandler
A handle to the message handler method to which the commands are mapped.

Remarks

This method maps a contiguous range of command IDs to a single message handler and adds it to the command source object. This is used for handling a group of related buttons with one method.

ICommandSource::AddCommandRangeUIHandler

Adds a group of user interface command message handlers to a command source object.

void AddCommandRangeUIHandler(
    unsigned int cmdIDMin,
    unsigned int cmdIDMax,
    CommandUIHandler^ cmdUIHandler);

Parameters

cmdIDMin
The beginning index of the command ID range. cmdIDMax
The ending index of the command ID range. cmdHandler
A handle to the message handler method to which the commands are mapped.

Remarks

This method maps a contiguous range of command IDs to a single user interface command message handler and adds it to the command source object. This is used for handling a group of related buttons with one method.

ICommandSource::AddCommandUIHandler

Adds a user interface command message handler to a command source object.

void AddCommandUIHandler(
    unsigned int cmdID,
    CommandUIHandler^ cmdUIHandler);

Parameters

cmdID
The command ID. cmdUIHandler
A handle to the user interface command message handler method.

Remarks

This method adds the user interface command message handler cmdHandler to the command source object and maps the handler to cmdID.

ICommandSource::PostCommand

Posts a message without waiting for it to be processed.

void PostCommand(unsigned int command);

Parameters

command
The command ID of the message to be posted.

Remarks

This method asynchronously posts the message mapped to the ID specified by command. It calls CWnd::PostMessage to place the message in the window's message queue and then returns without waiting for the corresponding window to process the message.

ICommandSource::RemoveCommandHandler

Removes a command handler from a command source object.

void RemoveCommandHandler(unsigned int cmdID);

Parameters

cmdID
The command ID.

Remarks

This method removes the command handler mapped to cmdID from the command source object.

ICommandSource::RemoveCommandRangeHandler

Removes a group of command handlers from a command source object.

void RemoveCommandRangeUIHandler(
    unsigned int cmdIDMin,
    unsigned int cmdIDMax);

Parameters

cmdIDMin
The beginning index of the command ID range. cmdIDMax
The ending index of the command ID range.

Remarks

This method removes a group of message handlers, mapped to the command IDs specified by cmdIDMin and cmdIDMax, from the command source object.

ICommandSource::RemoveCommandRangeUIHandler

Removes a group of user interface command message handlers from a command source object.

void RemoveCommandRangeUIHandler(
    unsigned int cmdIDMin,
    unsigned int cmdIDMax);

Parameters

cmdIDMin
The beginning index of the command ID range. cmdIDMax
The ending index of the command ID range.

Remarks

This method removes a group of user interface command message handlers, mapped to the command IDs specified by cmdIDMin and cmdIDMax, from the command source object.

ICommandSource::RemoveCommandUIHandler

Removes a user interface command message handler from a command source object.

void RemoveCommandUIHandler(unsigned int cmdID);

Parameters

cmdID
The command ID.

Remarks

This method removes the user interface command message handler mapped to cmdID from the command source object.

ICommandSource::SendCommand

Sends a message and waits for it to be processed before returning.

void SendCommand(unsigned int command);

Parameters

command
The command ID of the message to be sent.

Remarks

This method synchronously sends the message mapped to the ID specified by command. It calls CWnd::SendMessage to place the message in the window's message queue and waits until that window procedure has processed the message before returning.

See also

How to: Add Command Routing to the Windows Forms Control
ICommandTarget Interface