# Function Reference

# _GUICtrlRichEdit_StreamToFile

Writes contents of a control to a file

#include <GuiRichEdit.au3>
_GUICtrlRichEdit_StreamToFile ( $hWnd, $sFileSpec [, $bIncludeCOM = True [, $iOpts = 0 [, $iCodePage = 0 [, $iFileEncoding = Default]]]] )

## Parameters

$hWnd | Handle to the control
$sFileSpec | file specification
$bIncludeCOM | [optional] True (default): If writing to a .rtf file, includes any COM objects (space consuming) If writing to any other file, writes a text represntation of COM objects False: Writes spaces instead of COM objects
$iOpts | [optional] additional options: (default: 0) $SFF_PLAINRTF - write only rich text keywords common to all languages $SF_UNICODE - write Unicode
$iCodePage | [optional] Generate UTF-8 and text using this code page Default: do not
$iFileEncoding | [optional] file encoding specification (See FileOpen() to more info). Default: $FO_READ.

## Return Value

Success: | True
Failure: | False and sets the @error flag to non-zero.
@error: | 101 - $hWnd is not a handle 102 - Can't create $sFileSpec 1041 - $SFF_PLAINRTF is invalid for a text file 1042 - $opts: invalid option 1043 - $SF_UNICODE is only valid for a text file 700 - internal error

## Remarks

If text is selected, writes only the selection, else writes all text in the control.
If the extension in $sFileSpec is .rtf, RTF is written, else text.

## Related

_GUICtrlRichEdit_SetLimitOnText, _GUICtrlRichEdit_StreamFromFile, _GUICtrlRichEdit_StreamFromVar, _GUICtrlRichEdit_StreamToVar

## See Also

Search EM_STREAMIN in MSDN Library.

## Example

    #include <GUIConstantsEx.au3>
    #include <GuiRichEdit.au3>
    #include <MsgBoxConstants.au3>
    #include <WindowsStylesConstants.au3>

    Example()

    Func Example()
        Local $hGui, $hRichEdit, $iMsg
        $hGui = GUICreate("Example (" & StringTrimRight(@ScriptName, StringLen(".exe")) & ")", 320, 350, -1, -1)
        $hRichEdit = _GUICtrlRichEdit_Create($hGui, "This is a test.", 10, 10, 300, 220, _
                BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
        GUISetState(@SW_SHOW)

        _GUICtrlRichEdit_AppendText($hRichEdit, "Para with default border settings")
        MsgBox($MB_SYSTEMMODAL, "", "The default paragraph border settings are " & _GUICtrlRichEdit_GetParaBorder($hRichEdit))

        _GUICtrlRichEdit_AppendText($hRichEdit, @CRLF & "Second paragraph")
        _GUICtrlRichEdit_SetParaBorder($hRichEdit, "o", 3, "mag", 0.25)
        MsgBox($MB_SYSTEMMODAL, "", "Border settings of second paragraph are " & _GUICtrlRichEdit_GetParaBorder($hRichEdit))

        _GUICtrlRichEdit_SetSel($hRichEdit, 10, -1)
        Sleep(1000)
        MsgBox($MB_SYSTEMMODAL, "", "Border settings of first paragraph in the selection are " & _GUICtrlRichEdit_GetParaBorder($hRichEdit))

        ; Change from outside border to left border
        _GUICtrlRichEdit_SetParaBorder($hRichEdit, "l")

        ; Stream all text to the Desktop so you can look at border settings in Word
        _GUICtrlRichEdit_Deselect($hRichEdit)
        _GUICtrlRichEdit_StreamToFile($hRichEdit, @DesktopDir & "\gcre.rtf")

        While True
            $iMsg = GUIGetMsg()
            Select
                Case $iMsg = $GUI_EVENT_CLOSE
                    _GUICtrlRichEdit_Destroy($hRichEdit) ; needed unless script crashes
                    ; GUIDelete()   ; is OK too
                    Exit
            EndSelect
        WEnd
    EndFunc   ;==>Example