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 |