Index: trunk/src/VBox/Additions/common/VBoxControl/VBoxControl.cpp
===================================================================
--- trunk/src/VBox/Additions/common/VBoxControl/VBoxControl.cpp	(revision 32205)
+++ trunk/src/VBox/Additions/common/VBoxControl/VBoxControl.cpp	(revision 32207)
@@ -82,4 +82,10 @@
     GUEST_SHAREDFOLDERS,
 #endif
+    TAKE_SNAPSHOT,
+    SAVE_STATE,
+    SUSPEND,
+    POWER_OFF,
+    VERSION,
+    HELP,
     USAGE_ALL = UINT32_MAX
 };
@@ -95,19 +101,19 @@
  * them can fix this. */
 #if defined(RT_OS_WINDOWS) && !defined(VBOX_CONTROL_TEST)
-    if ((GET_VIDEO_ACCEL == eWhich) || (USAGE_ALL == eWhich))
+    if (GET_VIDEO_ACCEL == eWhich || eWhich == USAGE_ALL)
         doUsage("", g_pszProgName, "getvideoacceleration");
-    if ((SET_VIDEO_ACCEL == eWhich) || (USAGE_ALL == eWhich))
+    if (SET_VIDEO_ACCEL == eWhich || eWhich == USAGE_ALL)
         doUsage("<on|off>", g_pszProgName, "setvideoacceleration");
-    if ((LIST_CUST_MODES == eWhich) || (USAGE_ALL == eWhich))
+    if (LIST_CUST_MODES == eWhich || eWhich == USAGE_ALL)
         doUsage("", g_pszProgName, "listcustommodes");
-    if ((ADD_CUST_MODE == eWhich) || (USAGE_ALL == eWhich))
+    if (ADD_CUST_MODE == eWhich || eWhich == USAGE_ALL)
         doUsage("<width> <height> <bpp>", g_pszProgName, "addcustommode");
-    if ((REMOVE_CUST_MODE == eWhich) || (USAGE_ALL == eWhich))
+    if (REMOVE_CUST_MODE == eWhich || eWhich == USAGE_ALL)
         doUsage("<width> <height> <bpp>", g_pszProgName, "removecustommode");
-    if ((SET_VIDEO_MODE == eWhich) || (USAGE_ALL == eWhich))
+    if (SET_VIDEO_MODE == eWhich || eWhich == USAGE_ALL)
         doUsage("<width> <height> <bpp> <screen>", g_pszProgName, "setvideomode");
 #endif
 #ifdef VBOX_WITH_GUEST_PROPS
-    if ((GUEST_PROP == eWhich) || (USAGE_ALL == eWhich))
+    if (GUEST_PROP == eWhich || eWhich == USAGE_ALL)
     {
         doUsage("get <property> [-verbose]", g_pszProgName, "guestproperty");
@@ -120,10 +126,24 @@
 #endif
 #ifdef VBOX_WITH_SHARED_FOLDERS
-    if ((GUEST_SHAREDFOLDERS == eWhich) || (USAGE_ALL == eWhich))
+    if (GUEST_SHAREDFOLDERS == eWhich || eWhich == USAGE_ALL)
     {
         doUsage("list [-automount]", g_pszProgName, "sharedfolder");
     }
 #endif
-}
+
+    if (eWhich == TAKE_SNAPSHOT || eWhich == USAGE_ALL)
+        doUsage("", g_pszProgName, "takesnapshot");
+    if (eWhich == SAVE_STATE || eWhich == USAGE_ALL)
+        doUsage("", g_pszProgName, "savestate");
+    if (eWhich == SUSPEND   || eWhich == USAGE_ALL)
+        doUsage("", g_pszProgName, "suspend");
+    if (eWhich == POWER_OFF  || eWhich == USAGE_ALL)
+        doUsage("", g_pszProgName, "poweroff");
+    if (eWhich == HELP      || eWhich == USAGE_ALL)
+        doUsage("[command]", g_pszProgName, "help");
+    if (eWhich == VERSION   || eWhich == USAGE_ALL)
+        doUsage("", g_pszProgName, "version");
+}
+
 /** @} */
 
@@ -1383,4 +1403,39 @@
 #endif
 
+/**
+ * @callback_method_impl{FNVBOXCTRLCMDHANDLER, Command: takesnapshot}
+ */
+static RTEXITCODE handleTakeSnapshot(int argc, char *argv[])
+{
+    return VBoxControlError("not implemented");
+}
+
+/**
+ * @callback_method_impl{FNVBOXCTRLCMDHANDLER, Command: savestate}
+ */
+static RTEXITCODE handleSaveState(int argc, char *argv[])
+{
+    return VBoxControlError("not implemented");
+}
+
+/**
+ * @callback_method_impl{FNVBOXCTRLCMDHANDLER, Command: suspend|pause}
+ */
+static RTEXITCODE handleSuspend(int argc, char *argv[])
+{
+    return VBoxControlError("not implemented");
+}
+
+/**
+ * @callback_method_impl{FNVBOXCTRLCMDHANDLER, Command: poweroff|powerdown}
+ */
+static RTEXITCODE handlePowerOff(int argc, char *argv[])
+{
+    return VBoxControlError("not implemented");
+}
+
+/**
+ * @callback_method_impl{FNVBOXCTRLCMDHANDLER, Command: version}
+ */
 static RTEXITCODE handleVersion(int argc, char *argv[])
 {
@@ -1391,4 +1446,7 @@
 }
 
+/**
+ * @callback_method_impl{FNVBOXCTRLCMDHANDLER, Command: help}
+ */
 static RTEXITCODE handleHelp(int argc, char *argv[])
 {
@@ -1399,6 +1457,6 @@
 
 /** command handler type */
-typedef DECLCALLBACK(RTEXITCODE) FNHANDLER(int argc, char *argv[]);
-typedef FNHANDLER *PFNHANDLER;
+typedef DECLCALLBACK(RTEXITCODE) FNVBOXCTRLCMDHANDLER(int argc, char *argv[]);
+typedef FNVBOXCTRLCMDHANDLER *PFNVBOXCTRLCMDHANDLER;
 
 /** The table of all registered command handlers. */
@@ -1406,5 +1464,5 @@
 {
     const char *pszCommand;
-    PFNHANDLER pfnHandler;
+    PFNVBOXCTRLCMDHANDLER pfnHandler;
 } g_aCommandHandlers[] =
 {
@@ -1423,4 +1481,10 @@
     { "sharedfolder",           handleSharedFolder },
 #endif
+    { "takesnapshot",           handleTakeSnapshot },
+    { "savestate",              handleSaveState },
+    { "suspend",                handleSuspend },
+    { "pause",                  handleSuspend },
+    { "poweroff",               handlePowerOff },
+    { "powerdown",              handlePowerOff },
     { "getversion",             handleVersion },
     { "version",                handleVersion },
