Loopback
|
Posted: Tue Oct 14, 2025 12:43 Post subject: |
|
|
Orion9 wrote: | Обнаружил тут прикол на сайте майкрософт. В статье говорится, что тип данных у ExtentCount - DWORD, а по факту он 8 байт получается. |
Мне кажется там всё правильно, просто дело в выравнивании структуры. Хотя ExtentCount и DWORD, в этой структуре он будет выровнен по границе 8 байт и будет фактически занимать 8 байт, т. к. следующее поле - 64 битное целое. Т.е. с начала структуры 4 байта DWORD, а за ним еще 4 неиспользуемых байта (т.н. padding). Суммарный размер структуры получается минимально 32 байта + 16 байт на каждый последующий элемент массива.
Orion9 wrote: | Всё классно, но есть небольшой бажек.
Функция UserFunc не будет вызываться, если в записи не указан индекс иконки: |
Это не баг. Параметр для значка не может быть пропущен, если за ним есть что-то ещё. Из документации: "Данный формат полностью идентичен формату функции в командной записи и подчиняется её правилам".
Так что использование -1 правильный вариант, если нужно получить значок по умолчанию. Или можно использовать пустую строку "", если значок не нужен.
Orion9 wrote: | А как макрос SYSINFO_USERLANG получает своё значение? |
Code: | GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SABBREVLANGNAME, buffer, BUFFER_LENGTH);
|
|
|