#include <GDIP.au3>
#include <GUIConstantsEx.au3>

_Example()

Func _Example()
	Local $hGUI, $hGraphics, $hPath, $hCustomLineCap, $hClonedLineCap, $hPen
	Local $avPoints[4][2] = [[3], [-15, -15], [0, 0], [15, -15]]

	; Инициализирует библиотеку GDI+
	_GDIPlus_Startup()

	$hGUI = GUICreate("Клонирует наконечник", 400, 200)
	GUISetState()

	; Создаёт графический объект из дескриптора окна
	$hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)

	; Создаёт объект GraphicsPath и добавляет две линии к нему
	$hPath = _GDIPlus_PathCreate()
	_GDIPlus_PathAddLines($hPath, $avPoints)

	; Создаёт объект CustomLineCap
	$hCustomLineCap = _GDIPlus_CustomLineCapCreate(0, $hPath)

	; Создаёт клон объекта CustomLineCap
	$hClonedLineCap = _GDIPlus_CustomLineCapClone($hCustomLineCap)

	; Создаёт объект Карандаша, назначает ему клонированный наконечник в качестве завершения линии и рисует её.
	$hPen = _GDIPlus_PenCreate()
	_GDIPlus_PenSetCustomEndCap($hPen, $hClonedLineCap)
   
	_GDIPlus_GraphicsDrawLine($hGraphics, 0, 0, 100, 100, $hPen)

	Do
	Until GUIGetMsg() = $GUI_EVENT_CLOSE

	; Освобождает ресурсы
	_GDIPlus_PenDispose($hPen)
	_GDIPlus_CustomLineCapDispose($hClonedLineCap)
	_GDIPlus_CustomLineCapDispose($hCustomLineCap)
	_GDIPlus_PathDispose($hPath)
	_GDIPlus_GraphicsDispose($hGraphics)

	; Закрывает библиотеку GDI+
	_GDIPlus_Shutdown()
EndFunc