plh (LAYOUT_OBJECT) - input
This argument specifies a layout object returned by the LayoutCreateObject function.
The EditType argument specifies the type of edit shaping that is desired. The following are possible values:
EditInput
When ActiveShapeEditing is set (True) the layout object maintains an "EditInput state" that may affect subsequent calls to the LayoutEditShape function with EditInput EditType. The EditInput state is not affected when EditType is set to EditReplace. To reset the EditInput state to its initial state these functions should be called with InpBuf set to NULL. The EditInput state is not affected if any error occurs within the LayoutEditShape is EditInput.
On input the index argument specifies an offset to the start of a code element in InpBuf that will be the base for the editing. In addition, the context of surrounding code elements may be considered where the minimum set of code elements needed for the specific context dependent script(s) is identified by the ShapeContextSize layout value. If the set of surrounding code elements as defined by index, InpBuf and InpSize is less then the size of front/back of the ShapeContextSize, the LayoutEditShape functions will assume there is no additional context available. It is the caller's responsibility to provide the minimum context if available. The index argument is in units associated with type of InpBuf, i.e. bytes for LayoutEditShape
The InpBuf argument specifies the source to be processed. A NULL value with EditInput EditType indicates a request to reset the EditInput state to its initial state.
On input, the InpSize argument specifies the number of code elements to be processed in units associated with the type , i.e. bytes for LayoutEditShape. A value of - 1 indicates that input is delimited by a NULL code element. On return, the value is modified to the actual number of code elements that needed shaping in InpBuf. A value of zero(0) when EditType is EditInput indicates that the EditInput state should be reset to its initial state.
The OutBuf argument contains the shaped output text. This argument can be specified as a NULL pointer to indicate that no transformed text is required. If NULL, the functions will still return the index and InpSize that specify the amount of text required to be redrawn.
On input, the OutSize argument specifies the size of the output buffer in number of bytes. Only the code elements required to be shaped are written into OutBuf. The Output buffer should be large enough to contain the shaped result; otherwise, only partial shaping will be performed. If the ActiveShapeEditing layout value is set(True) the OutBuf should be allocated to contain at least:
number of InpBuf code element
On return, the OutSize argument is modified to the actual number of bytes placed in OutBuf.
When the OutSize argument is specified as zero,the function will calculate the size of an output buffer large enough to contain the transformed text from the input buffer, and the result will be returned in this field. The content of the buffers specifies by InpBuf and OutBuf, and the value of InpSize, will remain unchanged.