Kernel SDK Developer's Guide > Creating Custom Commands > Example of Creating a Custom Command
Example of Creating a Custom Command

The following is a simple example of an OdEdCommand Subclass. When executed, this object retrieves a string value from the passed in I/O object, and writes this string back out.

class SampleCmd : public OdStaticRxObject<OdEdCommand>
{
 public:
   const OdString  localName() const { return globalName(); }
   const OdString  groupName() const { return "ODA Example Commands"; }
   const OdString  globalName() const { return OdString("SampleCommand"); }

   // Body of the custom command.
   void execute(OdEdCommandContext* pCmdCtx)
   {
      OdDbCommandContextPtr  pDbCmdCtx(pCmdCtx);       // downcast for database access
      OdDbDatabasePtr  pDb = pDbCmdCtx->database();    // Current database
      OdEdUserIO*  pIO = pDbCmdCtx->userIO(); 
    
      OdString  sKey = pIO->getString("Enter a value: ", "< default >");
      pIO->putString(sKey + " was entered");
    }
};

Custom commands can peform database operations, create new objects, query for input and then perform operations based on that input, etc. See our ExCustObj_dll sample project for sample commands that create custom objects based on input from the user (these commands can be executed from within our OdaMfcAppDll sample by choosing Tools/Load Applications and loading the TX module created by ExCustObj_dll). Once the app is loaded, the commands can be accessed from Edit/Registered Commands.

Copyright © 2002 – 2020. Open Design Alliance. All rights reserved.