Enumeração FILETYPEATTRIBUTEFLAGS (shlwapi.h)

Indica constantes FILETYPEATTRIBUTEFLAGS que são usadas no valor EditFlags de uma chave do Registro PROGID de associação de arquivo.

Syntax

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;

Constantes

 
FTA_None
Valor: 0x00000000
Nenhuma opção FILETYPEATTRIBUTEFLAGS definida.
FTA_Exclude
Valor: 0x00000001
Exclui o tipo de arquivo.
FTA_Show
Valor: 0x00000002
Mostra tipos de arquivo, como pastas, que não estão associados a uma extensão de nome de arquivo.
FTA_HasExtension
Valor: 0x00000004
Indica que o tipo de arquivo tem uma extensão de nome de arquivo.
FTA_NoEdit
Valor: 0x00000008
Proíbe a edição das entradas do Registro associadas a esse tipo de arquivo, a adição de novas entradas e a exclusão ou modificação de entradas existentes.
FTA_NoRemove
Valor: 0x00000010
Proíbe a exclusão das entradas do Registro associadas a esse tipo de arquivo.
FTA_NoNewVerb
Valor: 0x00000020
Proíbe a adição de novos verbos ao tipo de arquivo.
FTA_NoEditVerb
Valor: 0x00000040
Proíbe a modificação ou exclusão de verbos canônicos , como abrir e imprimir.
FTA_NoRemoveVerb
Valor: 0x00000080
Proíbe a exclusão de verbos canônicos, como abrir e imprimir.
FTA_NoEditDesc
Valor: 0x00000100
Proíbe a modificação ou exclusão da descrição do tipo de arquivo.
FTA_NoEditIcon
Valor: 0x00000200
Proíbe a modificação ou exclusão do ícone atribuído ao tipo de arquivo.
FTA_NoEditDflt
Valor: 0x00000400
Proíbe a modificação do verbo padrão.
FTA_NoEditVerbCmd
Valor: 0x00000800
Proíbe a modificação dos comandos associados aos verbos .
FTA_NoEditVerbExe
Valor: 0x00001000
Proíbe a modificação ou exclusão de verbos.
FTA_NoDDE
Valor: 0x00002000
Proíbe a modificação ou exclusão das entradas relacionadas ao DDE.
FTA_NoEditMIME
Valor: 0x00008000
Proíbe a modificação ou exclusão do tipo de conteúdo e das entradas de extensão padrão.
FTA_OpenIsSafe
Valor: 0x00010000
Indica que o verbo aberto do tipo de arquivo pode ser invocado com segurança para arquivos baixados. Esse sinalizador se aplica somente a tipos de arquivo seguros, conforme identificado por AssocIsDangerous. Para melhorar a experiência do usuário e reduzir os prompts desnecessários do usuário ao baixar e ativar itens, os proprietários de tipo de arquivo devem especificar esse sinalizador e os aplicativos que baixam e ativam arquivos devem respeitar esse sinalizador.
FTA_AlwaysUnsafe
Valor: 0x00020000
Impede que a caixa Nunca me pergunte marcar seja habilitada. O uso desse sinalizador significa que FTA_OpenIsSafe não é respeitado e AssocIsDangerous sempre retorna TRUE.
Se o tipo de arquivo puder executar código, você sempre deverá usar esse sinalizador ou garantir que os manipuladores de tipo de arquivo reduzam os riscos, por exemplo, produzindo prompts de aviso antes de executar o código.

O usuário pode substituir esse atributo por meio da caixa de diálogo Tipo de Arquivo .
FTA_NoRecentDocs
Valor: 0x00100000
Proíbe a adição de membros desse tipo de arquivo à pasta Documentos Recentes . Além disso, no Windows 7 e posterior, proíbe a adição de membros desse tipo de arquivo à categoria automática Recentes ou Frequentes da Lista de Atalhos de um aplicativo.

Esse sinalizador não impede que membros desse tipo de arquivo sejam adicionados a uma Lista de Atalhos personalizada. Ele também não impõe nenhuma restrição ao tipo de arquivo que está sendo adicionado ao Jump Listas automático de outros aplicativos no caso de outros aplicativos usarem esse tipo de arquivo.
FTA_SafeForElevation
Valor: 0x00200000
Introduzido no Windows 8. Marca o arquivo ou esquema de URI como seguro para ser usado de um aplicativo de baixa confiança. Arquivos originados da Internet ou de um contêiner de aplicativo são exemplos em que o arquivo é considerado não confiável. Arquivos não confiáveis que contêm código são especialmente perigosos e as mitigações de segurança apropriadas devem ser aplicadas se o arquivo deve ser aberto por um aplicativo de confiança total. Os proprietários de tipo de arquivo para formatos de arquivo que têm a capacidade de executar código devem especificar esse sinalizador somente se o programa atenuar ameaças de elevação de privilégio associadas à execução de código em um nível de integridade mais alto. As mitigações incluem solicitar ao usuário antes que o código seja executado ou executar o código com privilégios reduzidos.

Ao especificar esse sinalizador para um tipo de arquivo inteiro, um aplicativo em execução em um contêiner de aplicativo pode passar arquivos desse tipo para um programa em execução com confiança total. Alguns tipos de arquivo são reconhecidos como inerentemente perigosos devido à sua capacidade de executar código e serão bloqueados se você não especificar esse valor.
FTA_AlwaysUseDirectInvoke
Valor: 0x00400000
Introduzido no Windows 8. Garante que os verbos do tipo de arquivo sejam invocados com um URI em vez de uma versão baixada do arquivo. Use esse sinalizador somente se você tiver registrado o verbo do tipo de arquivo para dar suporte ao DirectInvoke por meio do registro SupportedProtocols ou UseUrl.

Comentários

Esses sinalizadores representam possíveis atributos armazenados no valor EditFlags de um registro ProgID. Os dados editFlags são um único REG_DWORD.

O exemplo a seguir mostra os atributos FTA_NoRemove (0x00000010) e FTA_NoNewVerb (0x00000020) atribuídos ao tipo de arquivo .myp.

HKEY_CLASSES_ROOT
   .myp
      (Default) = MyProgram.1
   MyProgram.1
      (Default) = MyProgram Application
      EditFlags = 0x00000030
\

APIs como IQueryAssociations::GetData podem recuperar esses dados editFlags. Compare os equivalentes numéricos desses sinalizadores FILETYPEATTRIBUTEFLAGS com esse valor recuperado para determinar quais sinalizadores estão definidos.

O exemplo a seguir demonstra o uso de IQueryAssociations::GetData para determinar se esses valores estão definidos.

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();
}

Para definir um atributo EditFlags, você pode usar as funções RegSetValueEx ou SHSetValue . Primeiro, use IQueryAssociations::GetData para recuperar o conjunto atual de atributos, conforme mostrado no exemplo acima, adicione o FILETYPEATTRIBUTEFLAGS desejado a esse valor e, em seguida, escreva esse valor de volta no Registro usando uma das duas funções de conjunto.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP, Windows 2000 Professional, Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Cabeçalho shlwapi.h