TXM_SETITEMPOSITION

Перемещает элемент или категорию таблицы-дерева в новую позицию

TXM_SETITEMPOSITION
wParam = bUpdate;
lParam = (PTCEXINSERTITEM) pti;

bUpdate - если не равна нулю, побуждает контрол перерисовать своё содержимое
pti - указатель на структуру TCEXMOVEITEM c указанием перемещаемого элемента и точкой назначения.
В структуре:
Поле hInsertAfter может принимать следующие стандартные значения:
TVEX_FIRST - вставить в начало (в самый верх) указанной ветви дерева (если hPArent != 0) иначе в начало списка.
TVEX_LAST  - вставить в конец (в самый низ) указанной ветви дерева, если hPArent = 0 - как корневые элементы.
Поле hPArent определяет родительский элемент расширяемой категории. При hPArent = 0 элемент вставляется как корневой.
    Также заметим что установка hInsertAfter в не стандартные значения (напр. действительный указатель на элемент) приводит к игнорированию hPArent

Возвращаемые значения:

1 при успехе,
0 при сбое. Получить подробные сведения можно вызвав GetLastError().

Заметки:

Отдельно отметим что под элементом подразумевается не одна конкретная строка таблицы-дерева, но и все строки, являющиеся дочерними к указанной (категория). т. е. в случае указания элемента - родителя категории будет перемещена вся категория, с соответствующими модификациями уровня вложенности

Также отметим что при попытках переноса мастера категории внутрь категории (т. е. например вызов с item = Корень10 и hInsertAfter = Субэлемент30) вызовет естественный отказ, в виду неоднозначности такого перемещения, и в GetLastError() будет записана возможно неочевидная ошибка Win32: ERROR_DIRECTORY

Заголовок: TCEXclass.h