Метод System.Runtime.InteropServices.Marshal.GetActiveObject
В этой статье приводятся дополнительные замечания к справочной документации по этому API.
GetActiveObject предоставляет функцию COM GetActiveObject из OLEAUT32.DLL; однако последний ожидает идентификатор класса (CLSID) вместо программного идентификатора (ProgID
), ожидаемого этим методом. Чтобы получить запущенный экземпляр COM-объекта без зарегистрированного ProgID
, используйте вызов платформы для определения функции COM GetActiveObject . Описание вызова платформы см. в разделе "Использование неуправляемых функций DLL".
ProgID и CLSID
Ключи в поддереве реестра HKEY_CLASSES_ROOT содержат различные типы подразделов. Большинство вложенных ключей — это ProgID, которые сопоставляют пользовательскую строку с CLSID. Приложения часто используют эти читаемые пользователем строки вместо числовых CLSID. Часто компонент имеет независимый от версии ProgID, сопоставленный с последней версией компонента, установленного в системе.
Приложения и компоненты в основном используют progID для получения соответствующих CLSID.