Freigeben über


FILETYPEATTRIBUTEFLAGS-Enumeration (shlwapi.h)

Gibt FILETYPEATTRIBUTEFLAGS-Konstanten an, die im EditFlags-Wert eines PROGID-Registrierungsschlüssels für die Dateizuordnung verwendet werden.

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;

Konstanten

 
FTA_None
Wert: 0x00000000
Keine FILETYPEATTRIBUTEFLAGS-Optionen festgelegt.
FTA_Exclude
Wert: 0x00000001
Schließt den Dateityp aus.
FTA_Show
Wert: 0x00000002
Zeigt Dateitypen wie Ordner an, die keiner Dateinamenerweiterung zugeordnet sind.
FTA_HasExtension
Wert: 0x00000004
Gibt an, dass der Dateityp über eine Dateinamenerweiterung verfügt.
FTA_NoEdit
Wert: 0x00000008
Untersagt das Bearbeiten der diesem Dateityp zugeordneten Registrierungseinträge, das Hinzufügen neuer Einträge und das Löschen oder Ändern vorhandener Einträge.
FTA_NoRemove
Wert: 0x00000010
Verhindert das Löschen der Registrierungseinträge, die diesem Dateityp zugeordnet sind.
FTA_NoNewVerb
Wert: 0x00000020
Verhindert das Hinzufügen neuer Verben zum Dateityp.
FTA_NoEditVerb
Wert: 0x00000040
Untersagt das Ändern oder Löschen kanonischer Verben wie Öffnen und Drucken.
FTA_NoRemoveVerb
Wert: 0x00000080
Untersagt das Löschen kanonischer Verben wie Öffnen und Drucken.
FTA_NoEditDesc
Wert: 0x00000100
Untersagt das Ändern oder Löschen der Beschreibung des Dateityps.
FTA_NoEditIcon
Wert: 0x00000200
Verhindert das Ändern oder Löschen des Symbols, das dem Dateityp zugewiesen ist.
FTA_NoEditDflt
Wert: 0x00000400
Verhindert die Änderung des Standardverbens.
FTA_NoEditVerbCmd
Wert: 0x00000800
Verhindert die Änderung der Befehle , die Verben zugeordnet sind.
FTA_NoEditVerbExe
Wert: 0x00001000
Untersagt das Ändern oder Löschen von Verben.
FTA_NoDDE
Wert: 0x00002000
Untersagt die Änderung oder Löschung der Einträge im Zusammenhang mit DDE.
FTA_NoEditMIME
Wert: 0x00008000
Untersagt das Ändern oder Löschen des Inhaltstyps und der Standarderweiterungseinträge.
FTA_OpenIsSafe
Wert: 0x00010000
Gibt an, dass das geöffnete Verb des Dateityps für heruntergeladene Dateien sicher aufgerufen werden kann. Dieses Flag gilt nur für sichere Dateitypen, die von AssocIsDangerous identifiziert werden. Um die Benutzerfreundlichkeit zu verbessern und unnötige Benutzeraufforderungen beim Herunterladen und Aktivieren von Elementen zu reduzieren, sollten Dateitypbesitzer dieses Flag angeben, und Anwendungen, die Dateien herunterladen und aktivieren, sollten dieses Flag respektieren.
FTA_AlwaysUnsafe
Wert: 0x00020000
Verhindert, dass das Kontrollkästchen Nie fragen sie mich aktiviert wird. Die Verwendung dieses Flags bedeutet FTA_OpenIsSafe nicht beachtet wird und AssocIsDangerous immer TRUE zurückgibt.
Wenn Ihr Dateityp Code ausführen kann, sollten Sie immer dieses Flag verwenden oder sicherstellen, dass die Dateityphandler Risiken minimieren, z. B. durch Erstellen von Warnaufforderungen vor dem Ausführen des Codes.

Der Benutzer kann dieses Attribut über das Dialogfeld Dateityp außer Kraft setzen.
FTA_NoRecentDocs
Wert: 0x00100000
Verhindert das Hinzufügen von Membern dieses Dateityps zum Ordner Zuletzt verwendete Dokumente . Darüber hinaus wird in Windows 7 und höher das Hinzufügen von Membern dieses Dateityps zur automatischen Kategorie Zuletzt oder Häufig der Sprungliste einer Anwendung untersagt.

Dieses Flag schränkt nicht ein, dass Elemente dieses Dateityps zu einer benutzerdefinierten Sprungliste hinzugefügt werden. Außerdem gibt es keine Einschränkung für den Dateityp, der dem automatischen Jump-Listen anderer Anwendungen hinzugefügt wird, falls andere Anwendungen diesen Dateityp verwenden.
FTA_SafeForElevation
Wert: 0x00200000
In Windows 8 eingeführt. Kennzeichnet das Datei- oder URI-Schema als sicher, das von einer Anwendung mit geringer Vertrauenswürdigheit verwendet werden kann. Dateien, die aus dem Internet oder einem App-Container stammen, sind Beispiele, bei denen die Datei als nicht vertrauenswürdig gilt. Nicht vertrauenswürdige Dateien, die Code enthalten, sind besonders gefährlich, und es müssen geeignete Sicherheitsminderungen angewendet werden, wenn die Datei von einer voll vertrauenswürdigen Anwendung geöffnet werden soll. Dateitypbesitzer für Dateiformate, die die Möglichkeit haben, Code auszuführen, sollten dieses Flag nur angeben, wenn ihr Programm Bedrohungen durch Rechteerweiterungen entschärft, die mit der Ausführung von Code auf einer höheren Integritätsebene verknüpft sind. Zu den Entschärfungen gehören das Auffordern des Benutzers vor der Ausführung von Code oder das Ausführen des Codes mit reduzierten Berechtigungen.

Durch Angeben dieses Flags für einen gesamten Dateityp kann eine App, die in einem App-Container ausgeführt wird, Dateien dieses Typs an ein Programm übergeben, das mit voller Vertrauenswürdigkeit ausgeführt wird. Einige Dateitypen werden aufgrund ihrer Fähigkeit zum Ausführen von Code als inhärent gefährlich erkannt und werden blockiert, wenn Sie diesen Wert nicht angeben.
FTA_AlwaysUseDirectInvoke
Wert: 0x00400000
In Windows 8 eingeführt. Stellt sicher, dass die Verben für den Dateityp mit einem URI anstelle einer heruntergeladenen Version der Datei aufgerufen werden. Verwenden Sie dieses Flag nur, wenn Sie das Verb des Dateityps registriert haben, um DirectInvoke über die SupportedProtocols- oder UseUrl-Registrierung zu unterstützen.

Hinweise

Diese Flags stellen mögliche Attribute dar, die im EditFlags-Wert einer ProgID-Registrierung gespeichert sind. Die EditFlags-Daten sind eine einzelne REG_DWORD.

Das folgende Beispiel zeigt die Attribute FTA_NoRemove (0x00000010) und FTA_NoNewVerb (0x00000020), die dem Dateityp ".myp" zugewiesen sind.

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

APIs wie IQueryAssociations::GetData können diese EditFlags-Daten abrufen. Vergleichen Sie die numerischen Entsprechungen dieser FILETYPEATTRIBUTEFLAGS-Flags mit dem abgerufenen Wert, um zu bestimmen, welche Flags festgelegt sind.

Im folgenden Beispiel wird die Verwendung von IQueryAssociations::GetData veranschaulicht, um zu bestimmen, ob diese Werte festgelegt sind.

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

Um ein EditFlags-Attribut festzulegen, können Sie die Funktionen RegSetValueEx oder SHSetValue verwenden. Verwenden Sie zunächst IQueryAssociations::GetData , um den aktuellen Attributsatz abzurufen, wie im obigen Beispiel gezeigt, fügen Sie dem Wert den gewünschten FILETYPEATTRIBUTEFLAGS-Wert hinzu, und schreiben Sie diesen Wert dann mithilfe einer der beiden Setfunktionen zurück in die Registrierung.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP, Windows 2000 Professional, Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Kopfzeile shlwapi.h