Enumeración FILETYPEATTRIBUTEFLAGS (shlwapi.h)

Indica constantes FILETYPEATTRIBUTEFLAGS que se usan en el valor EditFlags de una clave del Registro PROGID de asociación de archivos.

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
No se han establecido opciones FILETYPEATTRIBUTEFLAGS .
FTA_Exclude
Valor: 0x00000001
Excluye el tipo de archivo.
FTA_Show
Valor: 0x00000002
Muestra tipos de archivo, como carpetas, que no están asociadas a una extensión de nombre de archivo.
FTA_HasExtension
Valor: 0x00000004
Indica que el tipo de archivo tiene una extensión de nombre de archivo.
FTA_NoEdit
Valor: 0x00000008
Prohíbe la edición de las entradas del Registro asociadas a este tipo de archivo, la adición de nuevas entradas y la eliminación o modificación de las entradas existentes.
FTA_NoRemove
Valor: 0x00000010
Prohíbe la eliminación de las entradas del Registro asociadas a este tipo de archivo.
FTA_NoNewVerb
Valor: 0x00000020
Prohíbe la adición de nuevos verbos al tipo de archivo.
FTA_NoEditVerb
Valor: 0x00000040
Prohíbe la modificación o eliminación de verbos canónicos , como abrir e imprimir.
FTA_NoRemoveVerb
Valor: 0x00000080
Prohíbe la eliminación de verbos canónicos como abrir e imprimir.
FTA_NoEditDesc
Valor: 0x00000100
Prohíbe la modificación o eliminación de la descripción del tipo de archivo.
FTA_NoEditIcon
Valor: 0x00000200
Prohíbe la modificación o eliminación del icono asignado al tipo de archivo.
FTA_NoEditDflt
Valor: 0x00000400
Prohíbe la modificación del verbo predeterminado.
FTA_NoEditVerbCmd
Valor: 0x00000800
Prohíbe la modificación de los comandos asociados a verbos.
FTA_NoEditVerbExe
Valor: 0x00001000
Prohíbe la modificación o eliminación de verbos.
FTA_NoDDE
Valor: 0x00002000
Prohíbe la modificación o eliminación de las entradas relacionadas con DDE.
FTA_NoEditMIME
Valor: 0x00008000
Prohíbe la modificación o eliminación del tipo de contenido y las entradas de extensión predeterminadas.
FTA_OpenIsSafe
Valor: 0x00010000
Indica que el verbo abierto del tipo de archivo se puede invocar de forma segura para los archivos descargados. Esta marca solo se aplica a tipos de archivo seguros, como se identifica en AssocIsDangerous. Para mejorar la experiencia del usuario y reducir las solicitudes de usuario innecesarias al descargar y activar elementos, los propietarios de tipos de archivo deben especificar esta marca y las aplicaciones que descargan y activan archivos deben respetar esta marca.
FTA_AlwaysUnsafe
Valor: 0x00020000
Impide que se habilite la casilla Nunca preguntarme . El uso de esta marca significa que FTA_OpenIsSafe no se respeta y AssocIsDangerous siempre devuelve TRUE.
Si el tipo de archivo puede ejecutar código, siempre debe usar esta marca o asegurarse de que los controladores de tipos de archivo mitigan los riesgos, por ejemplo, mediante la generación de avisos de advertencia antes de ejecutar el código.

El usuario puede invalidar este atributo a través del cuadro de diálogo Tipo de archivo .
FTA_NoRecentDocs
Valor: 0x00100000
Prohíbe la adición de miembros de este tipo de archivo a la carpeta Documentos recientes . Además, en Windows 7 y versiones posteriores, prohíbe la adición de miembros de este tipo de archivo a la categoría Automática reciente o frecuente de la lista de accesos directos de una aplicación.

Esta marca no restringe la adición de miembros de este tipo de archivo a una lista de accesos directos personalizada. Tampoco se aplica ninguna restricción al tipo de archivo que se agrega al jump automático Listas de otras aplicaciones en caso de que otras aplicaciones usen este tipo de archivo.
FTA_SafeForElevation
Valor: 0x00200000
Introducido en Windows 8. Marca el esquema de archivo o URI como seguro para usarse desde una aplicación de confianza baja. Los archivos que se originan en Internet o en un contenedor de aplicaciones son ejemplos en los que el archivo se considera que no es de confianza. Los archivos que no son de confianza que contienen código son especialmente peligrosos y se deben aplicar mitigaciones de seguridad adecuadas si una aplicación de plena confianza va a abrir el archivo. Los propietarios de tipos de archivo para formatos de archivo que tienen la capacidad de ejecutar código solo deben especificar esta marca si su programa mitiga las amenazas de elevación de privilegios asociadas al código en ejecución en un nivel de integridad superior. Las mitigaciones incluyen preguntar al usuario antes de ejecutar el código o ejecutar el código con privilegios reducidos.

Al especificar esta marca para un tipo de archivo completo, una aplicación que se ejecuta dentro de un contenedor de aplicaciones puede pasar archivos de este tipo a un programa que se ejecuta en plena confianza. Algunos tipos de archivo se reconocen como inherentemente peligrosos debido a su capacidad de ejecutar código y se bloquearán si no especifica este valor.
FTA_AlwaysUseDirectInvoke
Valor: 0x00400000
Introducido en Windows 8. Garantiza que los verbos del tipo de archivo se invocan con un URI en lugar de una versión descargada del archivo. Use esta marca solo si ha registrado el verbo del tipo de archivo para admitir DirectInvoke a través del registro SupportedProtocols o UseUrl.

Comentarios

Estas marcas representan los posibles atributos almacenados en el valor EditFlags de un registro de ProgID. Los datos EditFlags son una sola REG_DWORD.

En el ejemplo siguiente se muestran los atributos FTA_NoRemove (0x00000010) y FTA_NoNewVerb (0x00000020) asignados al tipo de archivo .myp.

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

Las API como IQueryAssociations::GetData pueden recuperar los datos editFlags. Compare los equivalentes numéricos de estas marcas FILETYPEATTRIBUTEFLAGS con respecto al valor recuperado para determinar qué marcas se establecen.

En el ejemplo siguiente se muestra el uso de IQueryAssociations::GetData para determinar si se establecen esos valores.

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 establecer un atributo EditFlags, puede usar las funciones RegSetValueEx o SHSetValue . En primer lugar, use IQueryAssociations::GetData para recuperar el conjunto actual de atributos tal como se muestra en el ejemplo anterior, agregue el FILETYPEATTRIBUTEFLAGS deseado a ese valor y, a continuación, vuelva a escribir ese valor en el Registro mediante una de las dos funciones de conjunto.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP, Windows 2000 Professional, Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Encabezado shlwapi.h