ÉNUMÉRATION FILETYPEATTRIBUTEFLAGS (shlwapi.h)

Indique les constantes FILETYPEATTRIBUTEFLAGS utilisées dans la valeur EditFlags d’une clé de Registre PROGID d’association de fichiers.

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
Valeur : 0x00000000
Aucune option FILETYPEATTRIBUTEFLAGS définie.
FTA_Exclude
Valeur : 0x00000001
Exclut le type de fichier.
FTA_Show
Valeur : 0x00000002
Affiche les types de fichiers, tels que les dossiers, qui ne sont pas associés à une extension de nom de fichier.
FTA_HasExtension
Valeur : 0x00000004
Indique que le type de fichier a une extension de nom de fichier.
FTA_NoEdit
Valeur : 0x00000008
Interdit la modification des entrées de Registre associées à ce type de fichier, l’ajout de nouvelles entrées et la suppression ou la modification d’entrées existantes.
FTA_NoRemove
Valeur : 0x00000010
Interdit la suppression des entrées de Registre associées à ce type de fichier.
FTA_NoNewVerb
Valeur : 0x00000020
Interdit l’ajout de nouveaux verbes au type de fichier.
FTA_NoEditVerb
Valeur : 0x00000040
Interdit la modification ou la suppression de verbes canoniques tels que l’ouverture et l’impression.
FTA_NoRemoveVerb
Valeur : 0x00000080
Interdit la suppression de verbes canoniques tels que l’ouverture et l’impression.
FTA_NoEditDesc
Valeur : 0x00000100
Interdit la modification ou la suppression de la description du type de fichier.
FTA_NoEditIcon
Valeur : 0x00000200
Interdit la modification ou la suppression de l’icône affectée au type de fichier.
FTA_NoEditDflt
Valeur : 0x00000400
Interdit la modification du verbe par défaut.
FTA_NoEditVerbCmd
Valeur : 0x00000800
Interdit la modification des commandes associées aux verbes.
FTA_NoEditVerbExe
Valeur : 0x00001000
Interdit la modification ou la suppression de verbes.
FTA_NoDDE
Valeur : 0x00002000
Interdit la modification ou la suppression des entrées liées à DDE.
FTA_NoEditMIME
Valeur : 0x00008000
Interdit la modification ou la suppression du type de contenu et des entrées d’extension par défaut.
FTA_OpenIsSafe
Valeur : 0x00010000
Indique que le verbe ouvert du type de fichier peut être appelé en toute sécurité pour les fichiers téléchargés. Cet indicateur s’applique uniquement aux types de fichiers fiables, tels qu’identifiés par AssocIsDangerous. Pour améliorer l’expérience utilisateur et réduire les invites inutiles de l’utilisateur lors du téléchargement et de l’activation d’éléments, les propriétaires de types de fichiers doivent spécifier cet indicateur et les applications qui téléchargent et activent des fichiers doivent respecter cet indicateur.
FTA_AlwaysUnsafe
Valeur : 0x00020000
Empêche l’activation de la zone Ne jamais me demander case activée. L’utilisation de cet indicateur signifie FTA_OpenIsSafe n’est pas respecté et AssocIsDangerous retourne toujours TRUE.
Si votre type de fichier peut exécuter du code, vous devez toujours utiliser cet indicateur ou vous assurer que les gestionnaires de types de fichiers atténuent les risques, par exemple en produisant des invites d’avertissement avant d’exécuter le code.

L’utilisateur peut remplacer cet attribut via la boîte de dialogue Type de fichier.
FTA_NoRecentDocs
Valeur : 0x00100000
Interdit l’ajout de membres de ce type de fichier au dossier Documents récents . En outre, dans Windows 7 et versions ultérieures, interdit l’ajout de membres de ce type de fichier à la catégorie automatique Récent ou Fréquent de la liste de raccourcis d’une application.

Cet indicateur n’empêche pas les membres de ce type de fichier d’être ajoutés à une liste de raccourcis personnalisée. Il n’impose pas non plus de restriction sur le type de fichier ajouté à l’Listes jump automatique d’autres applications dans le cas où d’autres applications utilisent ce type de fichier.
FTA_SafeForElevation
Valeur : 0x00200000
Introduit dans Windows 8. Marque le fichier ou le schéma d’URI comme sécurisé à utiliser à partir d’une application à faible niveau de fiabilité. Les fichiers qui proviennent d’Internet ou d’un conteneur d’application sont des exemples où le fichier est considéré comme non approuvé. Les fichiers non approuvés qui contiennent du code sont particulièrement dangereux, et des atténuations de sécurité appropriées doivent être appliquées si le fichier doit être ouvert par une application de confiance totale. Les propriétaires de types de fichiers pour les formats de fichiers qui ont la possibilité d’exécuter du code doivent spécifier cet indicateur uniquement si leur programme atténue les menaces d’élévation de privilèges associées à l’exécution du code à un niveau d’intégrité supérieur. Les mesures d’atténuation incluent l’invite de l’utilisateur avant l’exécution du code ou l’exécution du code avec des privilèges réduits.

En spécifiant cet indicateur pour un type de fichier entier, une application exécutée dans un conteneur d’application peut transmettre des fichiers de ce type à un programme s’exécutant en toute confiance. Certains types de fichiers sont reconnus comme intrinsèquement dangereux en raison de leur capacité à exécuter du code et sont bloqués si vous ne spécifiez pas cette valeur.
FTA_AlwaysUseDirectInvoke
Valeur : 0x00400000
Introduit dans Windows 8. Garantit que les verbes du type de fichier sont appelés avec un URI au lieu d’une version téléchargée du fichier. Utilisez cet indicateur uniquement si vous avez inscrit le verbe du type de fichier pour prendre en charge DirectInvoke via l’inscription SupportedProtocols ou UseUrl.

Remarques

Ces indicateurs représentent les attributs possibles stockés dans la valeur EditFlags d’une inscription ProgID. Les données EditFlags sont une seule REG_DWORD.

L’exemple suivant montre les attributs FTA_NoRemove (0x00000010) et FTA_NoNewVerb (0x00000020) attribués au type de fichier .myp.

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

Les API telles que IQueryAssociations ::GetData peuvent récupérer ces données EditFlags. Comparez les équivalents numériques de ces indicateurs FILETYPEATTRIBUTEFLAGS à cette valeur récupérée pour déterminer quels indicateurs sont définis.

L’exemple suivant illustre l’utilisation de IQueryAssociations ::GetData pour déterminer si ces valeurs sont définies.

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

Pour définir un attribut EditFlags, vous pouvez utiliser les fonctions RegSetValueEx ou SHSetValue . Tout d’abord, utilisez IQueryAssociations ::GetData pour récupérer le jeu d’attributs actuel, comme indiqué dans l’exemple ci-dessus, ajoutez le FICHIERTYPEATTRIBUTEFLAGS souhaité à cette valeur, puis réécrivez cette valeur dans le Registre à l’aide de l’une des deux fonctions set.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP, Windows 2000 Professionnel, Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
En-tête shlwapi.h