Навигация:
<< >> Оглавление Указатель

Приложения

Приложение А. Функции, константы и структуры RDS

А.5. Сервисные функции и макросы RDS

А.5.6. Операции с блоками и связями

А.5.6.39. rdsMakeUniqueBlockName – создать уникальное имя блока

Функция rdsMakeUniqueBlockName возвращает динамическую строку, содержащую имя блока, которое будет уникальным в указанной подсистеме. Имя формируется на основе переданной в параметрах строки.

    rdsMakeUniqueBlockNameA( // UTF8
     System, // Подсистема
     Name        // Желаемое имя блока (UTF8)
  );
    rdsMakeUniqueBlockNameW( // UTF16
     System, // Подсистема
     Name       // Желаемое имя блока (UTF16)
  );
  // 
    rdsMakeUniqueBlockName( // Кодировка по умолчанию
     System, // Подсистема
     Name       // Желаемое имя блока (кодировка по умолчанию)
  );

Тип указателя на эту функцию

RDS_SBhS (для UTF8) или RDS_WsBhWs (для UTF16)

Параметры

System (RDS_BHANDLE)
Идентификатор подсистемы, для которой нужно создать уникальное имя блока.
Name (RDSCSTR, RDSWCSTR, RDSXCSTR)
Указатель на строку (char* или wchar_t*, в зависимости от версии функции) с желаемым именем блока. Если передать в этом параметре NULL, будет сформировано имя вида «BlockN», где N – некоторый номер.

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

Указатель на созданную в динамической памяти строку, содержащую созданное уникальное (то есть не встречающееся в подсистеме System) имя блока, или NULL, если System – не подсистема, а блок какого-либо другого типа.

Примечания

Уникальное имя блока формируется из строки Name следующим образом: если в подсистеме System нет блока с именем Name, возвращается динамическая копия строки Name. Если блок с таким именем есть, то цифры в конце строки Name изменяются так, чтобы получившееся имя стало уникальным в подсистеме (например, если в подсистеме есть блоки с именами «Mul1» – «Mul64», а в параметре Name передана строка «Mul1», функция вернет «Mul65»). Если строка Name не оканчивается на цифры, к ней будет добавлен номер, делающий ее уникальной (номера начинаются с единицы). Точно таким же образом RDS корректирует имена вставляемых из буфера обмена или из библиотеки блоков, если их имена совпадают с уже имеющимися в подсистеме.

Динамическая строка, созданная этой функцией, должна быть обязательно освобождена вызовом rdsFree.

Пример

Пример использования функции rdsMakeUniqueBlockName приведен в §2.16.2 руководства программиста.

См. также

rdsFree, rdsGetChildBlockByName, rdsDuplicateBlock.


<< >> Оглавление Указатель