Найти Ole ClsId по типу файла

Мне нужна функция, которая принимает файл данных в виде байтового массива и определяет его идентификатор COM-сервера, как найти COM-сервер, зарегистрированный для этого типа файлов?

Предположим, я могу перечислить все записи в HKEY_CLASSES_ROOT\Wow6432Node\CLSID и найти его по расширению файла.

Guid GetClsId( byte[] fileData )
{
   var extension = TryGetExtensionByContent(fileData);

   /// enumerate HKEY_CLASSES_ROOT\Wow6432Node\CLSID and search extension

   return foundedGuid;
}

Но могут ли быть более быстрые и универсальные способы достижения моих целей?

1 ответ

AssocQueryString должен выполнить задачу.

Если для этого расширения зарегистрировано приложение, вы можете проверить наличие команды "открыть".

Другие вопросы по тегам