Найти 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 должен выполнить задачу.
Если для этого расширения зарегистрировано приложение, вы можете проверить наличие команды "открыть".