Condividi tramite


Enumerazione FILETYPEATTRIBUTEFLAGS (shlwapi.h)

Indica costanti FILETYPEATTRIBUTEFLAGS usate nel valore EditFlags di una chiave del Registro di sistema PROGID dell'associazione di file.

Sintassi

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;

Costanti

 
FTA_None
Valore: 0x00000000
Nessun set di opzioni FILETYPEATTRIBUTEFLAGS .
FTA_Exclude
Valore: 0x00000001
Esclude il tipo di file.
FTA_Show
Valore: 0x00000002
Mostra i tipi di file, ad esempio cartelle, che non sono associati a un'estensione del nome file.
FTA_HasExtension
Valore: 0x00000004
Indica che il tipo di file ha un'estensione del nome file.
FTA_NoEdit
Valore: 0x00000008
Impedisce la modifica delle voci del Registro di sistema associate a questo tipo di file, l'aggiunta di nuove voci e l'eliminazione o la modifica delle voci esistenti.
FTA_NoRemove
Valore: 0x00000010
Impedisce l'eliminazione delle voci del Registro di sistema associate a questo tipo di file.
FTA_NoNewVerb
Valore: 0x00000020
Impedisce l'aggiunta di nuovi verbi al tipo di file.
FTA_NoEditVerb
Valore: 0x00000040
Impedisce la modifica o l'eliminazione dei verbi canonici, ad esempio open and print.
FTA_NoRemoveVerb
Valore: 0x00000080
Impedisce l'eliminazione dei verbi canonici, ad esempio open e print.
FTA_NoEditDesc
Valore: 0x00000100
Impedisce la modifica o l'eliminazione della descrizione del tipo di file.
FTA_NoEditIcon
Valore: 0x00000200
Impedisce la modifica o l'eliminazione dell'icona assegnata al tipo di file.
FTA_NoEditDflt
Valore: 0x00000400
Impedisce la modifica del verbo predefinito.
FTA_NoEditVerbCmd
Valore: 0x00000800
Impedisce la modifica dei comandi associati ai verbi .
FTA_NoEditVerbExe
Valore: 0x00001000
Impedisce la modifica o l'eliminazione dei verbi.
FTA_NoDDE
Valore: 0x00002000
Impedisce la modifica o l'eliminazione delle voci correlate a DDE.
FTA_NoEditMIME
Valore: 0x00008000
Impedisce la modifica o l'eliminazione del tipo di contenuto e delle voci di estensione predefinite.
FTA_OpenIsSafe
Valore: 0x00010000
Indica che il verbo aperto del tipo di file può essere richiamato in modo sicuro per i file scaricati. Questo flag si applica solo ai tipi di file sicuri, come identificato da AssocIsDangerous. Per migliorare l'esperienza utente e ridurre le richieste utente non necessarie durante il download e l'attivazione di elementi, i proprietari di tipi di file devono specificare questo flag e applicazioni che scaricano e attivano i file devono rispettare questo flag.
FTA_AlwaysUnsafe
Valore: 0x00020000
Impedisce l'abilitazione della casella di controllo Never ask me . L'uso di questo flag significa che FTA_OpenIsSafe non è rispettato e AssocIsDangerous restituisce sempre TRUE.
Se il tipo di file può eseguire il codice, è consigliabile usare sempre questo flag o assicurarsi che i gestori dei tipi di file attenuano i rischi, ad esempio, generando richieste di avviso prima di eseguire il codice.

L'utente può eseguire l'override di questo attributo tramite la finestra di dialogo Tipo file .
FTA_NoRecentDocs
Valore: 0x00100000
Impedisce l'aggiunta di membri di questo tipo di file alla cartella Documenti recenti . Inoltre, in Windows 7 e versioni successive, impedisce l'aggiunta di membri di questo tipo di file alla categoria recente o frequente automatica di un'applicazione Jump List.

Questo flag non limita i membri di questo tipo di file da aggiungere a un jump list personalizzato. Non viene inoltre aggiunta alcuna restrizione al tipo di file aggiunto all'Elenchi jump automatico di altre applicazioni nel caso in cui altre applicazioni usino questo tipo di file.
FTA_SafeForElevation
Valore: 0x00200000
Introdotta in Windows 8. Contrassegna lo schema di file o URI come sicuro da usare da un'applicazione con attendibilità bassa. I file che provengono da Internet o da un contenitore di app sono esempi in cui il file viene considerato non attendibile. I file non attendibili che contengono codice sono particolarmente pericolosi e le mitigazioni di sicurezza appropriate devono essere applicate se il file deve essere aperto da un'applicazione di attendibilità completa. I proprietari dei tipi di file per i formati di file che hanno la possibilità di eseguire il codice devono specificare questo flag solo se il programma riduce le minacce di elevazione dei privilegi associati al codice in esecuzione a un livello di integrità superiore. Le mitigazioni includono la richiesta dell'utente prima dell'esecuzione del codice o dell'esecuzione del codice con privilegi ridotti.

Specificando questo flag per un intero tipo di file, un'app in esecuzione all'interno di un contenitore app può passare file di questo tipo a un programma in esecuzione con attendibilità completa. Alcuni tipi di file vengono riconosciuti come intrinsecamente pericolosi a causa della loro capacità di eseguire il codice e verranno bloccati se non si specifica questo valore.
FTA_AlwaysUseDirectInvoke
Valore: 0x00400000
Introdotta in Windows 8. Assicura che i verbi per il tipo di file vengano richiamati con un URI anziché una versione scaricata del file. Usare questo flag solo se il verbo del tipo di file è stato registrato per supportare DirectInvoke tramite la registrazione SupportedProtocols o UseUrl.

Commenti

Questi flag rappresentano gli attributi possibili archiviati nel valore EditFlags di una registrazione ProgID. I dati EditFlags sono una singola REG_DWORD.

Nell'esempio seguente vengono illustrati gli attributi FTA_NoRemove (0x00000010 ) e FTA_NoNewVerb ( 0x00000020 ) assegnati al tipo di file con estensione myp.

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

LE API, ad esempio IQueryAssociations::GetData , possono recuperare i dati editFlags. Confrontare gli equivalenti numerici di questi flag FILETYPEATTRIBUTEFLAGS rispetto al valore recuperato per determinare quali flag sono impostati.

Nell'esempio seguente viene illustrato l'uso di IQueryAssociations::GetData per determinare se tali valori sono impostati.

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

Per impostare un attributo EditFlags, è possibile usare le funzioni RegSetValueEx o SHSetValue . Usare prima IQueryAssociations::GetData per recuperare il set corrente di attributi come illustrato nell'esempio precedente, aggiungere il file FILETYPEATTRIBUTEFLAGS desiderato a tale valore, quindi scrivere nuovamente tale valore nel Registro di sistema usando una delle due funzioni set.

Requisiti

Requisito Valore
Client minimo supportato Windows XP, Windows 2000 Professional, Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Intestazione shlwapi.h