FILETYPEATTRIBUTEFLAGS
列挙型フラグメンバー 21
| 名前 | 10進 | 16進 | 説明 |
|---|---|---|---|
| FTA_None | 0 | 0x0 | FILETYPEATTRIBUTEFLAGS のオプションが設定されていません。 |
| FTA_Exclude | 1 | 0x1 | そのファイルの種類を除外します。 |
| FTA_Show | 2 | 0x2 | フォルダーなど、ファイル名拡張子に関連付けられていないファイルの種類を表示します。 |
| FTA_HasExtension | 4 | 0x4 | そのファイルの種類がファイル名拡張子を持つことを示します。 |
| FTA_NoEdit | 8 | 0x8 | このファイルの種類に関連付けられたレジストリエントリの編集、新しいエントリの追加、および既存のエントリの削除や変更を禁止します。 |
| FTA_NoRemove | 16 | 0x10 | このファイルの種類に関連付けられたレジストリエントリの削除を禁止します。 |
| FTA_NoNewVerb | 32 | 0x20 | そのファイルの種類への新しい動詞 (verb)の追加を禁止します。 |
| FTA_NoEditVerb | 64 | 0x40 | open や print などの正規の動詞 (verb)の変更または削除を禁止します。 |
| FTA_NoRemoveVerb | 128 | 0x80 | open や print などの正規の動詞 (verb) の削除を禁止します。 |
| FTA_NoEditDesc | 256 | 0x100 | そのファイルの種類の説明の変更または削除を禁止します。 |
| FTA_NoEditIcon | 512 | 0x200 | そのファイルの種類に割り当てられたアイコンの変更または削除を禁止します。 |
| FTA_NoEditDflt | 1024 | 0x400 | 既定の動詞 (verb)の変更を禁止します。 |
| FTA_NoEditVerbCmd | 2048 | 0x800 | 動詞 (verb) に関連付けられたコマンドの変更を禁止します。 |
| FTA_NoEditVerbExe | 4096 | 0x1000 | 動詞 (verb) の変更または削除を禁止します。 |
| FTA_NoDDE | 8192 | 0x2000 | DDE に関連するエントリの変更または削除を禁止します。 |
| FTA_NoEditMIME | 32768 | 0x8000 | コンテンツタイプおよび既定の拡張子のエントリの変更または削除を禁止します。 |
| FTA_OpenIsSafe | 65536 | 0x10000 | そのファイルの種類の open 動詞 (verb) を、ダウンロードされたファイルに対して安全に実行できることを示します。このフラグは、AssocIsDangerous によって識別される安全なファイルの種類にのみ適用されます。ユーザー体験を向上させ、項目のダウンロードや実行時の不要な確認メッセージを減らすため、ファイルの種類の所有者はこのフラグを指定し、ファイルをダウンロードして実行するアプリケーションはこのフラグを尊重する必要があります。 |
| FTA_AlwaysUnsafe | 131072 | 0x20000 | Never ask me (今後確認しない) チェックボックスが有効になるのを防ぎます。このフラグを使用すると FTA_OpenIsSafe は尊重されず、AssocIsDangerous は常に TRUE を返します。 ファイルの種類がコードを実行できる場合は、常にこのフラグを使用するか、コードを実行する前に警告メッセージを表示するなどして、ファイルの種類のハンドラーがリスクを軽減するようにしてください。 ユーザーはファイルの種類ダイアログボックスでこの属性を上書きできます。 |
| FTA_NoRecentDocs | 1048576 | 0x100000 | このファイルの種類に属する項目が最近使ったドキュメントフォルダーに追加されるのを禁止します。さらに Windows 7 以降では、このファイルの種類に属する項目が、アプリケーションのジャンプリストの自動的な 最近使ったもの カテゴリまたは よく使うもの カテゴリに追加されるのも禁止します。 このフラグは、このファイルの種類に属する項目がカスタムジャンプリストに追加されることを制限するものではありません。また、他のアプリケーションがこのファイルの種類を使用する場合に、そのアプリケーションの自動ジャンプリストへ追加されることも制限しません。 |
| FTA_SafeForElevation | 2097152 | 0x200000 | Windows 8 で導入されました。そのファイルまたは URI スキームを、低信頼のアプリケーションから使用しても安全であるものとしてマークします。インターネットやアプリコンテナーを発生源とするファイルは、信頼されないファイルとみなされる例です。コードを含む信頼されないファイルは特に危険であり、完全信頼のアプリケーションでそのファイルを開く場合は適切なセキュリティ上の緩和策を適用する必要があります。コードを実行できるファイル形式のファイルの種類の所有者は、より高い整合性レベルでコードを実行することに伴う特権昇格の脅威を自身のプログラムが緩和する場合にのみ、このフラグを指定してください。緩和策には、コードを実行する前にユーザーに確認を求めることや、権限を下げてコードを実行することなどがあります。 ファイルの種類全体に対してこのフラグを指定すると、アプリコンテナー内で実行されているアプリは、この種類のファイルを完全信頼で実行されているプログラムに渡せるようになります。一部のファイルの種類は、コードを実行できるため本質的に危険であると認識されており、この値を指定しない場合はブロックされます。 |
| FTA_AlwaysUseDirectInvoke | 4194304 | 0x400000 | Windows 8 で導入されました。そのファイルの種類の動詞 (verb) が、ダウンロードされたファイルではなく URI を使用して実行されるようにします。このフラグは、SupportedProtocols または UseUrl の登録によって DirectInvoke をサポートするようにファイルの種類の動詞を登録した場合にのみ使用してください。 |
公式ドキュメント
ファイルの関連付けを表す PROGID レジストリキーの EditFlags 値で使用される FILETYPEATTRIBUTEFLAGS 定数を示します。
解説(Remarks)
これらのフラグは、ProgID 登録の EditFlags 値に格納される属性を表します。EditFlags のデータは単一の REG_DWORD です。
次の例は、.myp ファイルの種類に FTA_NoRemove (0x00000010) 属性と FTA_NoNewVerb (0x00000020) 属性を割り当てたものを示しています。
HKEY_CLASSES_ROOT
.myp
(Default) = MyProgram.1
MyProgram.1
(Default) = MyProgram Application
EditFlags = 0x00000030\
IQueryAssociations::GetData などの API を使用すると、この EditFlags のデータを取得できます。取得した値と、これらの FILETYPEATTRIBUTEFLAGS フラグに対応する数値とを比較して、どのフラグが設定されているかを判断します。
次の例は、IQueryAssociations::GetData を使用して、これらの値が設定されているかどうかを判断する方法を示しています。
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();
}
EditFlags 属性を設定するには、RegSetValueEx 関数または SHSetValue 関数を使用できます。まず、上の例のように IQueryAssociations::GetData を使用して現在の属性のセットを取得し、その値に目的の FILETYPEATTRIBUTEFLAGS を追加してから、2 つの設定関数のいずれかを使用してその値をレジストリに書き戻します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
各言語での定義
列挙メンバーの定義。HSP タブは #define global(値は16進)。
typedef enum FILETYPEATTRIBUTEFLAGS : int {
FTA_None = 0,
FTA_Exclude = 1,
FTA_Show = 2,
FTA_HasExtension = 4,
FTA_NoEdit = 8,
FTA_NoRemove = 16,
FTA_NoNewVerb = 32,
FTA_NoEditVerb = 64,
FTA_NoRemoveVerb = 128,
FTA_NoEditDesc = 256,
FTA_NoEditIcon = 512,
FTA_NoEditDflt = 1024,
FTA_NoEditVerbCmd = 2048,
FTA_NoEditVerbExe = 4096,
FTA_NoDDE = 8192,
FTA_NoEditMIME = 32768,
FTA_OpenIsSafe = 65536,
FTA_AlwaysUnsafe = 131072,
FTA_NoRecentDocs = 1048576,
FTA_SafeForElevation = 2097152,
FTA_AlwaysUseDirectInvoke = 4194304
} FILETYPEATTRIBUTEFLAGS;[Flags]
public enum FILETYPEATTRIBUTEFLAGS : int
{
FTA_None = 0,
FTA_Exclude = 1,
FTA_Show = 2,
FTA_HasExtension = 4,
FTA_NoEdit = 8,
FTA_NoRemove = 16,
FTA_NoNewVerb = 32,
FTA_NoEditVerb = 64,
FTA_NoRemoveVerb = 128,
FTA_NoEditDesc = 256,
FTA_NoEditIcon = 512,
FTA_NoEditDflt = 1024,
FTA_NoEditVerbCmd = 2048,
FTA_NoEditVerbExe = 4096,
FTA_NoDDE = 8192,
FTA_NoEditMIME = 32768,
FTA_OpenIsSafe = 65536,
FTA_AlwaysUnsafe = 131072,
FTA_NoRecentDocs = 1048576,
FTA_SafeForElevation = 2097152,
FTA_AlwaysUseDirectInvoke = 4194304,
}<Flags>
Public Enum FILETYPEATTRIBUTEFLAGS As Integer
FTA_None = 0
FTA_Exclude = 1
FTA_Show = 2
FTA_HasExtension = 4
FTA_NoEdit = 8
FTA_NoRemove = 16
FTA_NoNewVerb = 32
FTA_NoEditVerb = 64
FTA_NoRemoveVerb = 128
FTA_NoEditDesc = 256
FTA_NoEditIcon = 512
FTA_NoEditDflt = 1024
FTA_NoEditVerbCmd = 2048
FTA_NoEditVerbExe = 4096
FTA_NoDDE = 8192
FTA_NoEditMIME = 32768
FTA_OpenIsSafe = 65536
FTA_AlwaysUnsafe = 131072
FTA_NoRecentDocs = 1048576
FTA_SafeForElevation = 2097152
FTA_AlwaysUseDirectInvoke = 4194304
End Enumimport enum
class FILETYPEATTRIBUTEFLAGS(enum.IntFlag):
FTA_None = 0
FTA_Exclude = 1
FTA_Show = 2
FTA_HasExtension = 4
FTA_NoEdit = 8
FTA_NoRemove = 16
FTA_NoNewVerb = 32
FTA_NoEditVerb = 64
FTA_NoRemoveVerb = 128
FTA_NoEditDesc = 256
FTA_NoEditIcon = 512
FTA_NoEditDflt = 1024
FTA_NoEditVerbCmd = 2048
FTA_NoEditVerbExe = 4096
FTA_NoDDE = 8192
FTA_NoEditMIME = 32768
FTA_OpenIsSafe = 65536
FTA_AlwaysUnsafe = 131072
FTA_NoRecentDocs = 1048576
FTA_SafeForElevation = 2097152
FTA_AlwaysUseDirectInvoke = 4194304// FILETYPEATTRIBUTEFLAGS (flags)
pub const FTA_None: i32 = 0;
pub const FTA_Exclude: i32 = 1;
pub const FTA_Show: i32 = 2;
pub const FTA_HasExtension: i32 = 4;
pub const FTA_NoEdit: i32 = 8;
pub const FTA_NoRemove: i32 = 16;
pub const FTA_NoNewVerb: i32 = 32;
pub const FTA_NoEditVerb: i32 = 64;
pub const FTA_NoRemoveVerb: i32 = 128;
pub const FTA_NoEditDesc: i32 = 256;
pub const FTA_NoEditIcon: i32 = 512;
pub const FTA_NoEditDflt: i32 = 1024;
pub const FTA_NoEditVerbCmd: i32 = 2048;
pub const FTA_NoEditVerbExe: i32 = 4096;
pub const FTA_NoDDE: i32 = 8192;
pub const FTA_NoEditMIME: i32 = 32768;
pub const FTA_OpenIsSafe: i32 = 65536;
pub const FTA_AlwaysUnsafe: i32 = 131072;
pub const FTA_NoRecentDocs: i32 = 1048576;
pub const FTA_SafeForElevation: i32 = 2097152;
pub const FTA_AlwaysUseDirectInvoke: i32 = 4194304;// FILETYPEATTRIBUTEFLAGS
const (
FTA_None int32 = 0
FTA_Exclude int32 = 1
FTA_Show int32 = 2
FTA_HasExtension int32 = 4
FTA_NoEdit int32 = 8
FTA_NoRemove int32 = 16
FTA_NoNewVerb int32 = 32
FTA_NoEditVerb int32 = 64
FTA_NoRemoveVerb int32 = 128
FTA_NoEditDesc int32 = 256
FTA_NoEditIcon int32 = 512
FTA_NoEditDflt int32 = 1024
FTA_NoEditVerbCmd int32 = 2048
FTA_NoEditVerbExe int32 = 4096
FTA_NoDDE int32 = 8192
FTA_NoEditMIME int32 = 32768
FTA_OpenIsSafe int32 = 65536
FTA_AlwaysUnsafe int32 = 131072
FTA_NoRecentDocs int32 = 1048576
FTA_SafeForElevation int32 = 2097152
FTA_AlwaysUseDirectInvoke int32 = 4194304
)const
FTA_None = 0;
FTA_Exclude = 1;
FTA_Show = 2;
FTA_HasExtension = 4;
FTA_NoEdit = 8;
FTA_NoRemove = 16;
FTA_NoNewVerb = 32;
FTA_NoEditVerb = 64;
FTA_NoRemoveVerb = 128;
FTA_NoEditDesc = 256;
FTA_NoEditIcon = 512;
FTA_NoEditDflt = 1024;
FTA_NoEditVerbCmd = 2048;
FTA_NoEditVerbExe = 4096;
FTA_NoDDE = 8192;
FTA_NoEditMIME = 32768;
FTA_OpenIsSafe = 65536;
FTA_AlwaysUnsafe = 131072;
FTA_NoRecentDocs = 1048576;
FTA_SafeForElevation = 2097152;
FTA_AlwaysUseDirectInvoke = 4194304;// FILETYPEATTRIBUTEFLAGS
pub const FTA_None: i32 = 0;
pub const FTA_Exclude: i32 = 1;
pub const FTA_Show: i32 = 2;
pub const FTA_HasExtension: i32 = 4;
pub const FTA_NoEdit: i32 = 8;
pub const FTA_NoRemove: i32 = 16;
pub const FTA_NoNewVerb: i32 = 32;
pub const FTA_NoEditVerb: i32 = 64;
pub const FTA_NoRemoveVerb: i32 = 128;
pub const FTA_NoEditDesc: i32 = 256;
pub const FTA_NoEditIcon: i32 = 512;
pub const FTA_NoEditDflt: i32 = 1024;
pub const FTA_NoEditVerbCmd: i32 = 2048;
pub const FTA_NoEditVerbExe: i32 = 4096;
pub const FTA_NoDDE: i32 = 8192;
pub const FTA_NoEditMIME: i32 = 32768;
pub const FTA_OpenIsSafe: i32 = 65536;
pub const FTA_AlwaysUnsafe: i32 = 131072;
pub const FTA_NoRecentDocs: i32 = 1048576;
pub const FTA_SafeForElevation: i32 = 2097152;
pub const FTA_AlwaysUseDirectInvoke: i32 = 4194304;const
FTA_None* = 0
FTA_Exclude* = 1
FTA_Show* = 2
FTA_HasExtension* = 4
FTA_NoEdit* = 8
FTA_NoRemove* = 16
FTA_NoNewVerb* = 32
FTA_NoEditVerb* = 64
FTA_NoRemoveVerb* = 128
FTA_NoEditDesc* = 256
FTA_NoEditIcon* = 512
FTA_NoEditDflt* = 1024
FTA_NoEditVerbCmd* = 2048
FTA_NoEditVerbExe* = 4096
FTA_NoDDE* = 8192
FTA_NoEditMIME* = 32768
FTA_OpenIsSafe* = 65536
FTA_AlwaysUnsafe* = 131072
FTA_NoRecentDocs* = 1048576
FTA_SafeForElevation* = 2097152
FTA_AlwaysUseDirectInvoke* = 4194304enum FILETYPEATTRIBUTEFLAGS : int {
FTA_None = 0,
FTA_Exclude = 1,
FTA_Show = 2,
FTA_HasExtension = 4,
FTA_NoEdit = 8,
FTA_NoRemove = 16,
FTA_NoNewVerb = 32,
FTA_NoEditVerb = 64,
FTA_NoRemoveVerb = 128,
FTA_NoEditDesc = 256,
FTA_NoEditIcon = 512,
FTA_NoEditDflt = 1024,
FTA_NoEditVerbCmd = 2048,
FTA_NoEditVerbExe = 4096,
FTA_NoDDE = 8192,
FTA_NoEditMIME = 32768,
FTA_OpenIsSafe = 65536,
FTA_AlwaysUnsafe = 131072,
FTA_NoRecentDocs = 1048576,
FTA_SafeForElevation = 2097152,
FTA_AlwaysUseDirectInvoke = 4194304,
}#define global FTA_None 0x0
#define global FTA_Exclude 0x1
#define global FTA_Show 0x2
#define global FTA_HasExtension 0x4
#define global FTA_NoEdit 0x8
#define global FTA_NoRemove 0x10
#define global FTA_NoNewVerb 0x20
#define global FTA_NoEditVerb 0x40
#define global FTA_NoRemoveVerb 0x80
#define global FTA_NoEditDesc 0x100
#define global FTA_NoEditIcon 0x200
#define global FTA_NoEditDflt 0x400
#define global FTA_NoEditVerbCmd 0x800
#define global FTA_NoEditVerbExe 0x1000
#define global FTA_NoDDE 0x2000
#define global FTA_NoEditMIME 0x8000
#define global FTA_OpenIsSafe 0x10000
#define global FTA_AlwaysUnsafe 0x20000
#define global FTA_NoRecentDocs 0x100000
#define global FTA_SafeForElevation 0x200000
#define global FTA_AlwaysUseDirectInvoke 0x400000
; ※フラグ列挙型。ビットORで組み合わせ可(例: FOO|BAR)。