Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Указывает константы FILETYPEATTRIBUTEFLAGS , используемые в значении EditFlags раздела реестра PROGID сопоставления файлов.
Синтаксис
typedef enum {
FTA_None = 0x00000000,
FTA_Exclude = 0x00000001,
FTA_Show = 0x00000002,
FTA_HasExtension = 0x00000004,
FTA_NoEdit = 0x00000008,
FTA_NoRemove = 0x00000010,
FTA_NoNewVerb = 0x00000020,
FTA_NoEditVerb = 0x00000040,
FTA_NoRemoveVerb = 0x00000080,
FTA_NoEditDesc = 0x00000100,
FTA_NoEditIcon = 0x00000200,
FTA_NoEditDflt = 0x00000400,
FTA_NoEditVerbCmd = 0x00000800,
FTA_NoEditVerbExe = 0x00001000,
FTA_NoDDE = 0x00002000,
FTA_NoEditMIME = 0x00008000,
FTA_OpenIsSafe = 0x00010000,
FTA_AlwaysUnsafe = 0x00020000,
FTA_NoRecentDocs = 0x00100000,
FTA_SafeForElevation = 0x00200000,
FTA_AlwaysUseDirectInvoke = 0x00400000
} FILETYPEATTRIBUTEFLAGS;
Constants
FTA_NoneЗначение: 0x00000000 Нет набора параметров FILETYPEATTRIBUTEFLAGS . |
FTA_ExcludeЗначение: 0x00000001 Исключает тип файла. |
FTA_ShowЗначение: 0x00000002 Отображает типы файлов, например папки, которые не связаны с расширением имени файла. |
FTA_HasExtensionЗначение: 0x00000004 Указывает, что тип файла имеет расширение имени файла. |
FTA_NoEditЗначение: 0x00000008 Запрещает редактирование записей реестра, связанных с этим типом файла, добавление новых записей и удаление или изменение существующих записей. |
FTA_NoRemoveЗначение: 0x00000010 Запрещает удаление записей реестра, связанных с этим типом файла. |
FTA_NoNewVerbЗначение: 0x00000020 Запрещает добавление новых команд в тип файла. |
FTA_NoEditVerbЗначение: 0x00000040 Запрещает изменение или удаление канонических команд, таких как открытие и печать. |
FTA_NoRemoveVerbЗначение: 0x00000080 Запрещает удаление канонических глаголов, таких как открытие и печать. |
FTA_NoEditDescЗначение: 0x00000100 Запрещает изменение или удаление описания типа файла. |
FTA_NoEditIconЗначение: 0x00000200 Запрещает изменение или удаление значка , назначенного типу файла. |
FTA_NoEditDfltЗначение: 0x00000400 Запрещает изменение команды по умолчанию. |
FTA_NoEditVerbCmdЗначение: 0x00000800 Запрещает изменение команд , связанных с командами. |
FTA_NoEditVerbExeЗначение: 0x00001000 Запрещает изменение или удаление команд. |
FTA_NoDDEЗначение: 0x00002000 Запрещает изменение или удаление записей, связанных с DDE. |
FTA_NoEditMIMEЗначение: 0x00008000 Запрещает изменение или удаление типов контента и записей расширения по умолчанию. |
FTA_OpenIsSafeЗначение: 0x00010000 Указывает, что открытая команда типа файла может быть безопасно вызвана для скачанных файлов. Этот флаг применяется только к безопасным типам файлов, как определено AssocIsDangerous. Чтобы улучшить взаимодействие с пользователем и уменьшить ненужные запросы пользователей при скачивании и активации элементов, владельцы типов файлов должны указать этот флаг и приложения, которые загружают и активируют файлы, должны соблюдать этот флаг. |
FTA_AlwaysUnsafeЗначение: 0x00020000 Предотвращает включение флажка "Никогда не спрашивать меня ". Использование этого флага означает , что FTA_OpenIsSafe не учитывается, и AssocIsDangerous всегда возвращает TRUE. Если тип файла может выполнять код, всегда следует использовать этот флаг или убедиться, что обработчики типов файлов устраняют риски, например путем создания предупреждений перед выполнением кода. Пользователь может переопределить этот атрибут с помощью диалогового окна "Тип файла ". |
FTA_NoRecentDocsЗначение: 0x00100000 Запрещает добавление элементов этого типа файла в папку "Последние документы ". Кроме того, в Windows 7 и более поздних версиях запрещает добавление элементов этого типа файла в автоматическую категорию " Последние " или "Частые " списка переходов приложения. Этот флаг не ограничивает добавление элементов этого типа файла в пользовательский список переходов. Он также не ограничивает тип файла, добавляемый в автоматические списки переходов других приложений в случае, если другие приложения используют этот тип файла. |
FTA_SafeForElevationЗначение: 0x00200000 Представлено в Windows 8. Помечает схему файлов или URI как безопасную для использования из приложения с низким уровнем доверия. Файлы, исходящие из Интернета или контейнера приложений, являются примерами, в которых файл считается ненадежным. Ненадежные файлы, содержащие код, особенно опасны, и необходимо применить соответствующие меры безопасности, если файл должен быть открыт приложением полного доверия. Владельцы типов файлов для форматов файлов с возможностью выполнения кода должны указывать этот флаг, только если программа устраняет угрозы повышения привилегий, связанные с запущенным кодом на более высоком уровне целостности. Устранение рисков включает запрос пользователя перед выполнением кода или выполнением кода с ограниченными привилегиями. Указав этот флаг для всего типа файла, приложение, работающее в контейнере приложения, может передавать файлы этого типа программе, работающей в полном доверии. Некоторые типы файлов распознаются как опасные по сути из-за их способности выполнять код и будут заблокированы, если это значение не указано. |
FTA_AlwaysUseDirectInvokeЗначение: 0x00400000 Представлено в Windows 8. Убедитесь, что команды для типа файла вызываются с помощью URI вместо скачаемой версии файла. Используйте этот флаг, только если вы зарегистрировали команду типа файла для поддержки DirectInvoke с помощью регистрации SupportedProtocols или UseUrl. |
Замечания
Эти флаги представляют возможные атрибуты, хранящиеся в значении EditFlags регистрации ProgID. Данные EditFlags — это одна REG_DWORD.
В следующем примере показаны атрибуты FTA_NoRemove (0x00000010) и FTA_NoNewVerb (0x00000020), назначенные типу файла MYP.
HKEY_CLASSES_ROOT .myp (Default) = MyProgram.1 MyProgram.1 (Default) = MyProgram Application EditFlags = 0x00000030\
API-интерфейсы, такие как IQueryAssociations::GetData , могут извлекать данные EditFlags. Сравните числовые эквиваленты этих флагов FILETYPEATTRIBUTEFLAGS с данным значением, чтобы определить, какие флаги заданы.
В следующем примере показано использование IQueryAssociations::GetData , чтобы определить, заданы ли эти значения.
IQueryAssociations *passoc;
HRESULT hr = AssocCreate(CLSID_QueryAssociations, IID_PPV_ARGS(&passoc));
if (SUCCEEDED(hr))
{
hr = passoc->Init(NULL, pszType, NULL, NULL);
if (SUCCEEDED(hr))
{
DWORD dwEditFlags;
ULONG cb = sizeof(dwEditFlags);
hr = passoc->GetData(NULL, ASSOCDATA_EDITFLAGS, NULL, &dwEditFlags, &cb);
if (SUCCEEDED(hr))
{
if (dwEditFlags & 0x00000010) // FTA_NoRemove
{
// ...
}
if (dwEditFlags & 0x00000020) // FTA_NoNewVerb
{
// ...
}
}
}
passoc->Release();
}
Чтобы задать атрибут EditFlags, можно использовать функции RegSetValueEx или SHSetValue . Сначала используйте IQueryAssociations::GetData для получения текущего набора атрибутов, как показано в приведенном выше примере, добавьте в это значение требуемое значение FILETYPEATTRIBUTEFLAGS , а затем запишите это значение обратно в реестр с помощью одной из двух функций набора.
Требования
| Требование | Ценность |
|---|---|
| Минимальный поддерживаемый клиент | Windows XP, Windows 2000 Профессиональный, Windows Vista [только классические приложения] |
| минимальный поддерживаемый сервер | Windows Server 2008 [только классические приложения] |
| Header | shlwapi.h |