def take_screen_shot(self, screen_id, address, width, height, bitmap_format):
        """Takes a screen shot of the requested size and format and copies it to the
        buffer allocated by the caller and pointed to by @a address.
        The buffer size must be enough for a 32 bits per pixel bitmap,
        i.e. width * height * 4 bytes.
        
        This API can be used only locally by a VM process through the
        COM/XPCOM C++ API as it requires pointer support. It is not
        available for scripting languages, Java or any webservice clients.
        Unless you are writing a new VM frontend use
        :py:func:`take_screen_shot_to_array` .

        in screen_id of type int

        in address of type str

        in width of type int

        in height of type int

        in bitmap_format of type :class:`BitmapFormat`

        """
        if not isinstance(screen_id, baseinteger):
            raise TypeError("screen_id can only be an instance of type baseinteger")
        if not isinstance(address, basestring):
            raise TypeError("address can only be an instance of type basestring")
        if not isinstance(width, baseinteger):
            raise TypeError("width can only be an instance of type baseinteger")
        if not isinstance(height, baseinteger):
            raise TypeError("height can only be an instance of type baseinteger")
        if not isinstance(bitmap_format, BitmapFormat):
            raise TypeError("bitmap_format can only be an instance of type BitmapFormat")
        self._call("takeScreenShot",
                     in_p=[screen_id, address, width, height, bitmap_format])
Takes a screen shot of the requested size and format and copies it to the
        buffer allocated by the caller and pointed to by @a address.
        The buffer size must be enough for a 32 bits per pixel bitmap,
        i.e. width * height * 4 bytes.
        
        This API can be used only locally by a VM process through the
        COM/XPCOM C++ API as it requires pointer support. It is not
        available for scripting languages, Java or any webservice clients.
        Unless you are writing a new VM frontend use
        :py:func:`take_screen_shot_to_array` .

        in screen_id of type int

        in address of type str

        in width of type int

        in height of type int

        in bitmap_format of type :class:`BitmapFormat`