Реестр Windows Понимание CLSID: сущность и использование

Кирилл

Команда форума
Администратор
Ассоциация VN
Сообщения
14,053
Реакции
5,745

Немного о CLSID


Здесь можно найти информацию о CLSID:

Источник 1
Источник 2


Итак, что же есть по сути CLSID?

Из справки microsoft следует, объект clsid имеет право на то, что бы его называли программой-оболочкой для глобального уникального идентификатора (GUID) для COM-класса.
А так же приведу цитату следующего содержания:
CLSID — аббревиатура для идентификатора класса, точно так же как GUID — аббревиатура для глобального уникального идентификатора. Обе аббревиатуры являются 128-битными (16 байт) целыми числами с малой вероятностью совпадения, поэтому они могут быть использованы в компьютерах и сетях в качестве уникальных идентификаторов. Обычно идентификатор представляется либо 16-элементным байтовым массивом либо специально отформатированной строкой шестнадцатеричных цифр (где символы a—f или A—F представляют десятичные цифры 10—15. Это строковое представление состоит либо из 32 последовательных шестнадцатеричных цифр, либо из групп, состоящих из 8, 4, 4, 4 и 12 шестнадцатеричных цифр, разделенных дефисами. Строковое представление с дефисами при необходимости может быть заключено в фигурные или круглые скобки ({}).

то есть ключ clsid по сути является уникальным именем ,сгенерированный по определенному принципу и несущим в себе ссылку на объект, имя которого было сгенерировано в код CLSID.

Так, давайте немного практики.

Здесь я описал несколько примеров использования ключей CLSID.
Кроме того разного рода функционал может быть добавлен в автозагрузку, использован в каких то своих целях.
Что бы сравнить возможности, я попрошу вас заглянуть в эти три темы по очереди:
Параметры команды shell
Краткий справочник по CLSID
И например вот эта


Посмотрев эти темы мы убедимся, что функционал CLSID довольно обширен и мощный.

итак, clsid-
глобально-уникальный идентификатор, определяющий тип СОМ-объекта. Каждый тип СОМ-объекта (элемент) имеет в реестре свой CLSID, по которому его можно загрузить и контролировать из других приложений.

В реестре мы найдем перечень всех имеющихся ключей CLSID по этому адресу :
Код:
HKEY_CLASSES_ROOT\CLSID

Но стоп!
что же это с ними за подразделы с параметрами?
Такие как этот:
Код:
HKEY_CLASSES_ROOT\CLSID\{0000002F-0000-0000-C000-000000000046}\InprocServer32
Смотрим таблицу:

Раздел реестрОписание
AppIDЗависимые AppID с CLSID.
AutoConvertToЗадает автоматическое преобразование данного класса объектов, в новый класс объектов.
AutoTreatAsАвтоматически устанавливает CLSID для TreatAs ключ к указанному значению.
AuxUserTypeОпределяет короткие имена и отображаемое имя приложения.
ControlОпределяет объект как элемент Управления ActiveX.
ConversionИспользуется Conversion диалоговое окно для определения форматов.
DataFormatsОпределяет форматы по умолчанию и данные, которые поддерживаются приложением.
DefaultIconИконка используемая по умолчанию для объекта.
InprocHandlerУказывает, использует ли приложение пользовательский обработчик.
InprocHandler32Указывает, использует ли приложение пользовательский обработчик.
InprocServerЗадает путь к in-process server DLL.
InprocServer32Регистрация 32-bit in-process server и определяет модель потоков на сервере, которые могут работать в домашней группе.
InsertableУказывает на то, что у объекта этого класса должно появиться в Insert Object диалоговое окно списка при использовании COM-контейнер приложений.
InterfaceУказывает, что у объекта этого класса должен появиться в Insert Object диалоговом окне списка, когда используется приложениями COM контейнеров.
LocalServerЗадает полный путь к 16-бит локального сервера приложений.
LocalServer32LocalServer32 определяет местоположение приложения COM-сервера для запуска приложений локального сервера.
MiscStatusОпределяет, как создать и отобразить объект.
ProgIDАссоциированные ProgID с CLSID.
ToolBoxBitmap32Определяет имя модуля и идентификатор ресурса для изображения (16 х 16) используемого для панели инструментов или кнопки панели инструментов.
TreatAsОпределяет CLSID класса, могут имитировать текущий класс. Эмуляция проявляется в способности одного приложения открывать и редактировать объект другого класса, сохраняя исходный формат объекта.
VerbОпределяет глаголы, которые будут зарегистрированы для приложения.
VersionУказывает номер версии управления.
VersionIndependentProgIDАссоциированные ProgID с CLSID. Это значение используется, чтобы определить последнюю версию объекта application.

Информационная поддержка:
Microsoft Learn: Build skills that open doors in your career


Рекомендую к прочтению:
Windows все - Краткий справочник по CLSID

Дополнительные вопросы и обсуждение темы:
https://www.safezone.cc/threads/sposoby-zapuska-prilozhenij-s-ispolzovaniem-clsid.22879/
 
Последнее редактирование модератором:
Назад
Сверху Снизу