Index: src/client/c/hu/varadiistvan/xplra/MultiBuffer.cc
===================================================================
--- src/client/c/hu/varadiistvan/xplra/MultiBuffer.cc	(revision 57)
+++ src/client/c/hu/varadiistvan/xplra/MultiBuffer.cc	(revision 66)
@@ -259,5 +259,5 @@
 //------------------------------------------------------------------------------
 
-size_t MultiBuffer::addInt(const string& name) throw()
+size_t MultiBuffer::addInt(const std::string& name) throw()
 {
     unfinalize();
@@ -268,5 +268,5 @@
 //------------------------------------------------------------------------------
 
-size_t MultiBuffer::addFloat(const string& name) throw()
+size_t MultiBuffer::addFloat(const std::string& name) throw()
 {
     unfinalize();
@@ -277,5 +277,5 @@
 //------------------------------------------------------------------------------
 
-size_t MultiBuffer::addDouble(const string& name) throw()
+size_t MultiBuffer::addDouble(const std::string& name) throw()
 {
     unfinalize();
@@ -286,5 +286,5 @@
 //------------------------------------------------------------------------------
 
-size_t MultiBuffer::addFloatArray(const string& name, size_t length,
+size_t MultiBuffer::addFloatArray(const std::string& name, size_t length,
                                   size_t offset) throw()
 {
@@ -297,5 +297,5 @@
 //------------------------------------------------------------------------------
 
-size_t MultiBuffer::addIntArray(const string& name, size_t length,
+size_t MultiBuffer::addIntArray(const std::string& name, size_t length,
                                 size_t offset) throw()
 {
@@ -308,5 +308,5 @@
 //------------------------------------------------------------------------------
 
-size_t MultiBuffer::addByteArray(const string& name, size_t length,
+size_t MultiBuffer::addByteArray(const std::string& name, size_t length,
                                  size_t offset) throw()
 {
Index: src/client/c/hu/varadiistvan/xplra/MultiBuffer.h
===================================================================
--- src/client/c/hu/varadiistvan/xplra/MultiBuffer.h	(revision 57)
+++ src/client/c/hu/varadiistvan/xplra/MultiBuffer.h	(revision 66)
@@ -329,4 +329,6 @@
      * Set the value of the float array dataref with the given ID.
      *
+     * @param id the ID of the float array dataref
+     * @param value the source buffer
      * @param length the amount of data, i.e. you can set only a part
      * of the data in the buffer. If 0, it is assumed to be the length
@@ -344,4 +346,6 @@
      * Get the value of the float array dataref with the given ID
      *
+     * @param id the ID of the float array dataref
+     * @param value the destination buffer
      * @param length the size of the buffer. If 0, it is assumed to be
      * the length of the data in the buffer minus the offset (see
@@ -360,4 +364,5 @@
      * buffer.
      *
+     * @param id the ID of the float array dataref
      * @param offset the offset within the buffer. If it is not less
      * than the length of the buffer, 0 is returned.
@@ -369,4 +374,6 @@
      * Set the value of the integer array dataref with the given ID.
      *
+     * @param id the ID of the integer array dataref
+     * @param value the source buffer
      * @param length the amount of data, i.e. you can set only a part
      * of the data in the buffer. If 0, it is assumed to be the length
@@ -384,4 +391,6 @@
      * Get the value of the integer array dataref with the given ID
      *
+     * @param id the ID of the integer array dataref
+     * @param value the destination buffer
      * @param length the size of the buffer. If 0, it is assumed to be
      * the length of the data in the buffer minus the offset (see
@@ -399,4 +408,5 @@
      * Get the array of integer values as a directly readable buffer.
      *
+     * @param id the ID of the float array dataref
      * @param offset the offset within the buffer. If it is not less
      * than the length of the buffer, 0 is returned.
@@ -409,4 +419,6 @@
      * Set the value of the byte array dataref with the given ID.
      *
+     * @param id the ID of the byte array dataref
+     * @param value the source buffer
      * @param length the amount of data, i.e. you can set only a part
      * of the data in the buffer. If 0, it is assumed to be the length
@@ -424,4 +436,6 @@
      * Get the value of the byte array dataref with the given ID
      *
+     * @param id the ID of the byte array dataref
+     * @param value the destination buffer
      * @param length the size of the buffer. If 0, it is assumed to be
      * the length of the data in the buffer minus the offset (see
@@ -433,5 +447,5 @@
      */
     size_t getByteArray(size_t id, uint8_t* value,
-                       size_t length = 0, size_t offset = 0) const
+                        size_t length = 0, size_t offset = 0) const
         throw(InvalidIDException, TypeMismatchException);
 
@@ -439,4 +453,5 @@
      * Get the array of byte values as a directly readable buffer.
      *
+     * @param id the ID of the byte array dataref
      * @param offset the offset within the buffer. If it is not less
      * than the length of the buffer, 0 is returned.
Index: src/client/c/hu/varadiistvan/xplra/XPlane.h
===================================================================
--- src/client/c/hu/varadiistvan/xplra/XPlane.h	(revision 54)
+++ src/client/c/hu/varadiistvan/xplra/XPlane.h	(revision 66)
@@ -173,4 +173,6 @@
      * Get a possibly partial array of floats.
      *
+     * @param name the name of the dataref
+     * @param dest the destination buffer
      * @param length the length of the destination buffer
      * @param offset the offset from which to get the array
@@ -185,4 +187,6 @@
      * be created with a length needed to hold the returned value.
      *
+     * @param name the name of the dataref
+     * @param length will contain the number of floats read
      * @param offset the offset from which to get the array
      */
@@ -193,4 +197,6 @@
      * Get a possibly partial array of integers.
      *
+     * @param name the name of the dataref
+     * @param dest the destination buffer
      * @param length the length of the destination buffer
      * @param offset the offset from which to get the array
@@ -205,4 +211,6 @@
      * be created with a length needed to hold the returned value.
      *
+     * @param name the name of the dataref
+     * @param length will contain the number of integers read
      * @param offset the offset from which to get the array
      */
@@ -213,4 +221,6 @@
      * Get a possibly partial array of bytes.
      *
+     * @param name the name of the dataref
+     * @param dest the destination buffer
      * @param length the length of the destination buffer
      * @param offset the offset from which to get the array
@@ -225,7 +235,9 @@
      * be created with a length needed to hold the returned value.
      *
-     * @param offset the offset from which to get the array
-     */
-    uint8_t* getByteArray(const char* name, size_t& lengyh,
+     * @param name the name of the dataref
+     * @param length will contain the number of bytes read on return
+     * @param offset the offset from which to get the array
+     */
+    uint8_t* getByteArray(const char* name, size_t& length,
                           size_t offset = 0) throw(Exception);
 
Index: src/client/python/xplra.py
===================================================================
--- src/client/python/xplra.py	(revision 64)
+++ src/client/python/xplra.py	(revision 66)
@@ -8,70 +8,111 @@
 #-------------------------------------------------------------------------------
 
+## @package xplra
+#
+# Python client module and C/C++ client library for the X-Plane Remote
+# Access plugin
+
+#-------------------------------------------------------------------------------
+
+## Protocol command: query the value of a single dataref
 COMMAND_GET_SINGLE = 0x01
 
+## Protocol command: set the value of a single dataref
 COMMAND_SET_SINGLE = 0x02
 
+## Protocol command: query the value of several datarefs
 COMMAND_GET_MULTI = 0x03
 
+## Protocol command: set the value of several datarefs
 COMMAND_SET_MULTI = 0x04
 
+## Protocol command: register a multi-dataref getter
 COMMAND_REGISTER_GET_MULTI = 0x11
 
+## Protocol command: unregister a multi-dataref getter
 COMMAND_UNREGISTER_GET_MULTI = 0x12
 
+## Protocol command: execute a registered multi-dataref getter
 COMMAND_EXECUTE_GET_MULTI = 0x13
 
+## Protocol command: register a multi-dataref setter
 COMMAND_REGISTER_SET_MULTI = 0x21
 
+## Protocol command: unregister a multi-dataref setter
 COMMAND_UNREGISTER_SET_MULTI = 0x22
 
+## Protocol command: execute a registered multi-dataref setter
 COMMAND_EXECUTE_SET_MULTI = 0x23
 
+## Protocol command: get the versions of X-Plane, XPLM and XPLRA
 COMMAND_GET_VERSIONS = 0x31
 
+## Protocol command: reload all plugins
 COMMAND_RELOAD_PLUGINS = 0x32
 
+## Protocol command: show a message to the pilot
 COMMAND_SHOW_MESSAGE = 0x41
 
+## Protocol command: register hotkeys
 COMMAND_REGISTER_HOTKEYS = 0x51
 
+## Protocol command: query the status of registered hotkeys
 COMMAND_QUERY_HOTKEYS = 0x52
 
+## Protocol command: unregister hotkeys
 COMMAND_UNREGISTER_HOTKEYS = 0x53
 
+## Protocol type constant: integer
 TYPE_INT = 0x01
 
+## Protocol type constant: single-precision floating point
 TYPE_FLOAT = 0x02
 
+## Protocol type constant: double-precision floating point
 TYPE_DOUBLE = 0x03
 
+## Protocol type constant: array of single-precision floating point values
 TYPE_FLOAT_ARRAY = 0x11
 
+## Protocol type constant: array of integers
 TYPE_INT_ARRAY = 0x12
 
+## Protocol type constant: array of bytes
 TYPE_BYTE_ARRAY = 0x13
 
+## Protocol result: OK
 RESULT_OK = 0x00
 
+## Protocol result: an invalid command was sent
 RESULT_INVALID_COMMAND = 0x01
 
+## Protocol result: an unknown dataref was attempted to query or set
 RESULT_UNKNOWN_DATAREF = 0x02
 
+## Protocol result: invalid type
 RESULT_INVALID_TYPE = 0x03
 
+## Protocol result: invalid length
 RESULT_INVALID_LENGTH = 0x04
 
+## Protocol result: invalid offset
 RESULT_INVALID_OFFSET = 0x05
 
+## Protocol result: invalid count
 RESULT_INVALID_COUNT = 0x06
 
+## Protocol result: invalid ID
 RESULT_INVALID_ID = 0x07
 
+## Protocol result: invalid duration
 RESULT_INVALID_DURATION = 0x08
 
+## Protocol result: other error
 RESULT_OTHER_ERROR = 0xff
 
+## Hotkey modifier: Shift
 HOTKEY_MODIFIER_SHIFT = 0x0100
 
+## Hotkey modifier: Control
 HOTKEY_MODIFIER_CONTROL = 0x0200
 
@@ -80,4 +121,6 @@
 class ProtocolException(Exception):
     """Exception to signify protocol errors."""
+
+    ## mapping from result codes to their string representation
     _message = { RESULT_INVALID_COMMAND : "invalid command",
                  RESULT_UNKNOWN_DATAREF : "unknown dataref",
@@ -90,4 +133,9 @@
                  RESULT_OTHER_ERROR : "other error" }
 
+    ## @var resultCode
+    # the result code, one of the RESULT_XXX constants
+    ## @var parameter
+    # an optional parameter for the result
+
     @staticmethod
     def getMessage(resultCode):
@@ -99,4 +147,5 @@
 
     def __init__(self, resultCode, parameter = None):
+        """Construct the exception."""
         message = "xplra.ProtocolException: " + self.getMessage(resultCode)
         if parameter is not None:
@@ -116,4 +165,7 @@
     class Win32NamedPipe(io.RawIOBase):
         """A stream object to represent a Win32 named pipe."""
+        ## @var _handle
+        # the Windows file handle for the pipe
+
         def __init__(self, name):
             """Construct the pipe with the given name."""
@@ -211,4 +263,9 @@
 class XPlane(object):
     """The main class representing the connection to X-Plane."""
+
+    ## @var _stream
+    # the data stream used to communicate with the plugin
+    ## @var _multiBuffers
+    # the list of multi-dataref buffers belonging to this object
 
     @staticmethod
@@ -574,4 +631,25 @@
 class MultiBuffer(object):
     """Buffer for querying or setting multi-dataref values."""
+
+    ## @var _xplane
+    # the \ref XPlane object this buffer belongs to
+
+    ## @var _registerCommand
+    # the command used to perform the registration of this buffer
+    # (\ref COMMAND_REGISTER_GET_MULTI or \ref COMMAND_REGISTER_SET_MULTI)
+
+    ## @var _unregisterCommand
+    # the command used to perform the registration of this buffer
+    # (\ref COMMAND_UNREGISTER_GET_MULTI or \ref COMMAND_UNREGISTER_SET_MULTI)
+
+    ## @var _dataRefs
+    # the datarefs belonging to the buffer
+
+    ## @var _values
+    # the value of the datarefs before setting or after querying
+
+    ## @var _registeredID
+    # the ID with which the buffer is registered in X-Plane
+
     @staticmethod
     def _getDefault(type, length):
Index: src/plugin/src/xplra/GetDataRefTask.h
===================================================================
--- src/plugin/src/xplra/GetDataRefTask.h	(revision 13)
+++ src/plugin/src/xplra/GetDataRefTask.h	(revision 66)
@@ -246,8 +246,10 @@
      * Construct the task for the dataref with the given name.
      *
+     * @param name the name of the dataref
      * @param maxCount the maximal number of items to retrieve. If <0,
      * the function will perform an extra query to retrieve the size of
      * of the dataref's data, which it will store in the task, so
      * later on it can be reused.
+     * @param offset the offset from which to query the array
      */
     GetArrayDataRefTask(const std::string& name,
@@ -257,8 +259,10 @@
      * Construct the task for the given dataref
      *
+     * @param dataRef the dataref
      * @param maxCount the maximal number of items to retrieve. If <0,
      * the function will perform an extra query to retrieve the size
      * of the dataref's data, which it will store in the task, so
      * later on it can be reused.
+     * @param offset the offset from which to query the array
      */
     GetArrayDataRefTask(XPLMDataRef dataRef,
@@ -313,8 +317,10 @@
      * Construct the task for the dataref with the given name.
      *
+     * @param name the name of the dataref
      * @param maxCount the maximal number of data items to
      * retrieve. If <0, the function will perform an extra query to
      * retrieve the size of the dataref's data, which it will store in
      * the task, so later on it can be reused.
+     * @param offset the offset from which to query the array
      */
     GetFloatArrayDataRefTask(const std::string& name,
@@ -324,48 +330,54 @@
      * Construct the task for the given dataref
      *
-     * @param maxBytes the maximal number of data items to
-     * retrieve. If <0, the function will perform an extra query to
-     * retrieve the size of the dataref's data, which it will store in
-     * the task, so later on it can be reused.
-     */
-    GetFloatArrayDataRefTask(XPLMDataRef dataRef,
-                             int maxCount = -1, int offset = 0);
-};
-
-//------------------------------------------------------------------------------
-//------------------------------------------------------------------------------
-
-/**
- * A dataref task which retrieves the value of an integer array.
- */
-class GetIntArrayDataRefTask :
-        public GetArrayDataRefTask<int, GetIntArrayDataRefTask>
-{
-public:
-    /**
-     * Get the data via XPLM
-     */
-    static int queryData(XPLMDataRef dataRef, int* dest,
-                         int offset, int count);
-
-public:
-    /**
-     * Construct the task for the dataref with the given name.
-     *
+     * @param dataRef the dataref
      * @param maxCount the maximal number of data items to
      * retrieve. If <0, the function will perform an extra query to
      * retrieve the size of the dataref's data, which it will store in
      * the task, so later on it can be reused.
-     */
-    GetIntArrayDataRefTask(const std::string& name,
-                           int maxCount = -1, int offset = 0);
-
-    /**
-     * Construct the task for the given dataref
-     *
-     * @param maxBytes the maximal number of data items to
+     * @param offset the offset from which to query the array
+     */
+    GetFloatArrayDataRefTask(XPLMDataRef dataRef,
+                             int maxCount = -1, int offset = 0);
+};
+
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+
+/**
+ * A dataref task which retrieves the value of an integer array.
+ */
+class GetIntArrayDataRefTask :
+        public GetArrayDataRefTask<int, GetIntArrayDataRefTask>
+{
+public:
+    /**
+     * Get the data via XPLM
+     */
+    static int queryData(XPLMDataRef dataRef, int* dest,
+                         int offset, int count);
+
+public:
+    /**
+     * Construct the task for the dataref with the given name.
+     *
+     * @param name the name of the dataref
+     * @param maxCount the maximal number of data items to
      * retrieve. If <0, the function will perform an extra query to
      * retrieve the size of the dataref's data, which it will store in
      * the task, so later on it can be reused.
+     * @param offset the offset from which to query the array
+     */
+    GetIntArrayDataRefTask(const std::string& name,
+                           int maxCount = -1, int offset = 0);
+
+    /**
+     * Construct the task for the given dataref
+     *
+     * @param dataRef the dataref
+     * @param maxCount the maximal number of data items to
+     * retrieve. If <0, the function will perform an extra query to
+     * retrieve the size of the dataref's data, which it will store in
+     * the task, so later on it can be reused.
+     * @param offset the offset from which to query the array
      */
     GetIntArrayDataRefTask(XPLMDataRef dataRef,
@@ -393,8 +405,10 @@
      * Construct the task for the dataref with the given name.
      *
+     * @param name the name of the dataref
      * @param maxBytes the maximal number of bytes to retrieve. If <0,
      * the function will perform an extra query to retrieve the size
      * of the dataref's data, which it will store in the task, so
      * later on it can be reused.
+     * @param offset the offset from which to query the array
      */
     GetByteArrayDataRefTask(const std::string& name,
@@ -404,8 +418,10 @@
      * Construct the task for the given dataref
      *
+     * @param dataRef the dataref
      * @param maxBytes the maximal number of bytes to retrieve. If <0,
      * the function will perform an extra query to retrieve the size
      * of the dataref's data, which it will store in the task, so
      * later on it can be reused.
+     * @param offset the offset from which to query the array
      */
     GetByteArrayDataRefTask(XPLMDataRef dataRef,
Index: src/plugin/src/xplra/SetDataRefTask.h
===================================================================
--- src/plugin/src/xplra/SetDataRefTask.h	(revision 13)
+++ src/plugin/src/xplra/SetDataRefTask.h	(revision 66)
@@ -62,4 +62,5 @@
      * signifies an error only, if some wrong data is read. If the
      * stream fails, it will indicate RESULT_OK.
+     * @param stream the stream to read from
      *
      * @return the new instance or 0 on error.
