FILETYPEATTRIBUTEFLAGS-Enumeration (shlwapi.h)
Gibt FILETYPEATTRIBUTEFLAGS-Konstanten an, die im EditFlags-Wert eines PROGID-Registrierungsschlüssels für die Dateizuordnung verwendet werden.
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;
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. |
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.
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 |