ICommand Interface

ICommand Interface | Send Feedback
See Also Members

Allows access to a command for the command window.

# Syntax

Visual Basic |
--- | ---
    Public Interface ICommand

C# |
--- | ---
    public interface ICommand

JavaScript |
--- | ---
    Object dsCommand

COM native C++ |
--- | ---
    interface ICommand

C++ |
--- | ---
    class dsCommand

# Example

The following code snippets show how to add a command to the list of commands for the command window:

- COM native C++ (from the DraftSight API COM native C++ template files DsAddinCommand.h, DsAddinCommand.cpp, and DsAddinUserCommand.cpp).
- C++ ( from the DraftSight API C++ template file dsAddinUserConnection.cpp).

#### COM Native C++

DsAddinCommand.h

public:

CComQIPtr<ICommand> m_DsCommand;

DsAddinCommand.cpp

// DsAddinCommand constructor
DsAddinCommand::DsAddinCommand( ICommand* dsCommand ): m_DsCommand( dsCommand )
{
IUnknown* dsUnk = NULL ;
HRESULT hr = m_DsCommand->QueryInterface(IID_IUnknown, (void **) &dsUnk);
hr = DispEventAdvise(dsUnk);
}

DsAddinUserCommand.cpp

DsAddinUserCommand::DsAddinUserCommand( _bstr_t ApiUuid, _bstr_t UserCmdName, _bstr_t CmdString, _bstr_t Description, _bstr_t SmallIcon, _bstr_t LargeIcon )

{

> {

> > CDsAddinConnection *dsConnection = getMyApp();

> > dsCreateCommandError_e commandErr;

> > // User command dependent on pre-defined command

> > ICommand* pCommand = dsConnection->m_DsApp->CreateCommand( ApiUuid, UserCmdName, &commandErr );

> > m_DsUserCommand = dsConnection->m_DsApp->CreateUserCommand( ApiUuid, UserCmdName, CmdString, Description, SmallIcon, LargeIcon, &commandErr );

> > DsAddinCommand *dsAddCom = new DsAddinCommand(pCommand);

> }

#### C++

> dsString UserCommandName = L

> "qAddin1_Notepad";

> dsString Description = L

> "Opens Notepad";

> dsString UserCmdString = L

> "^C^CqAddin1_Notepad";

> const int MENU_POSITION = 9; //Menu should be between "Modify" and "Tools" menus

> dsApplication_c *dsApp = getDsApp();

> dsCreateCommandError_e Error;

> // User command dependent on pre-defined command

> dsApp->CreateCommand(myApplication::appID, UserCommandName, &Error, &pCmd );

> if(( Error == 0 ) )

> {

> > RegisterCommandExecuteNotifyHook( pCmd );

> > dsUserCommand_ptr pUserCmd;

> > dsApp->CreateUserCommand( myApplication::appID, UserCommandName, UserCmdString, Description, L

> "path_and_file_name.bmp", L"path_and_file_name.png", dsUIState_Document, &Error, &pUserCmd );

# Remarks

To see a list of existing commands:

1. Right-click a toolbar in the user interface.
2. Select Customize Interface.
3. Click Commands on the left side of the dialog.
4. Use the scroll bar to see the list of existing commands.
5. To quickly locate a command that you've added:
   1. Type the name of the command in Find.
   2. Click the name of the command in the Name column.
   3. Examine the information at the bottom of the dialog.

# Accessors

IApplication::CreateCommand2

# Object Model

Application

# See Also

####

ICommand Members
Interop.dsAutomation Namespace
IApplication::RemoveCommand Method ()
IUserCommand Interface
ICommandMessage Interface
ICommand Event ExecuteNotify