Win32 API 日本語リファレンス
ホームUI.Shell › FILETYPEATTRIBUTEFLAGS

FILETYPEATTRIBUTEFLAGS

列挙型フラグ
基底型i4

メンバー 21

名前10進16進説明
FTA_None00x0FILETYPEATTRIBUTEFLAGS のオプションが設定されていません。
FTA_Exclude10x1そのファイルの種類を除外します。
FTA_Show20x2フォルダーなど、ファイル名拡張子に関連付けられていないファイルの種類を表示します。
FTA_HasExtension40x4そのファイルの種類がファイル名拡張子を持つことを示します。
FTA_NoEdit80x8このファイルの種類に関連付けられたレジストリエントリの編集、新しいエントリの追加、および既存のエントリの削除や変更を禁止します。
FTA_NoRemove160x10このファイルの種類に関連付けられたレジストリエントリの削除を禁止します。
FTA_NoNewVerb320x20そのファイルの種類への新しい動詞 (verb)の追加を禁止します。
FTA_NoEditVerb640x40openprint などの正規の動詞 (verb)の変更または削除を禁止します。
FTA_NoRemoveVerb1280x80openprint などの正規の動詞 (verb) の削除を禁止します。
FTA_NoEditDesc2560x100そのファイルの種類の説明の変更または削除を禁止します。
FTA_NoEditIcon5120x200そのファイルの種類に割り当てられたアイコンの変更または削除を禁止します。
FTA_NoEditDflt10240x400既定の動詞 (verb)の変更を禁止します。
FTA_NoEditVerbCmd20480x800動詞 (verb) に関連付けられたコマンドの変更を禁止します。
FTA_NoEditVerbExe40960x1000動詞 (verb) の変更または削除を禁止します。
FTA_NoDDE81920x2000DDE に関連するエントリの変更または削除を禁止します。
FTA_NoEditMIME327680x8000コンテンツタイプおよび既定の拡張子のエントリの変更または削除を禁止します。
FTA_OpenIsSafe655360x10000そのファイルの種類の open 動詞 (verb) を、ダウンロードされたファイルに対して安全に実行できることを示します。このフラグは、AssocIsDangerous によって識別される安全なファイルの種類にのみ適用されます。ユーザー体験を向上させ、項目のダウンロードや実行時の不要な確認メッセージを減らすため、ファイルの種類の所有者はこのフラグを指定し、ファイルをダウンロードして実行するアプリケーションはこのフラグを尊重する必要があります。
FTA_AlwaysUnsafe1310720x20000

Never ask me (今後確認しない) チェックボックスが有効になるのを防ぎます。このフラグを使用すると FTA_OpenIsSafe は尊重されず、AssocIsDangerous は常に TRUE を返します。 ファイルの種類がコードを実行できる場合は、常にこのフラグを使用するか、コードを実行する前に警告メッセージを表示するなどして、ファイルの種類のハンドラーがリスクを軽減するようにしてください。

ユーザーはファイルの種類ダイアログボックスでこの属性を上書きできます。

FTA_NoRecentDocs10485760x100000

このファイルの種類に属する項目が最近使ったドキュメントフォルダーに追加されるのを禁止します。さらに Windows 7 以降では、このファイルの種類に属する項目が、アプリケーションのジャンプリストの自動的な 最近使ったもの カテゴリまたは よく使うもの カテゴリに追加されるのも禁止します。

このフラグは、このファイルの種類に属する項目がカスタムジャンプリストに追加されることを制限するものではありません。また、他のアプリケーションがこのファイルの種類を使用する場合に、そのアプリケーションの自動ジャンプリストへ追加されることも制限しません。

FTA_SafeForElevation20971520x200000

Windows 8 で導入されました。そのファイルまたは URI スキームを、低信頼のアプリケーションから使用しても安全であるものとしてマークします。インターネットやアプリコンテナーを発生源とするファイルは、信頼されないファイルとみなされる例です。コードを含む信頼されないファイルは特に危険であり、完全信頼のアプリケーションでそのファイルを開く場合は適切なセキュリティ上の緩和策を適用する必要があります。コードを実行できるファイル形式のファイルの種類の所有者は、より高い整合性レベルでコードを実行することに伴う特権昇格の脅威を自身のプログラムが緩和する場合にのみ、このフラグを指定してください。緩和策には、コードを実行する前にユーザーに確認を求めることや、権限を下げてコードを実行することなどがあります。

ファイルの種類全体に対してこのフラグを指定すると、アプリコンテナー内で実行されているアプリは、この種類のファイルを完全信頼で実行されているプログラムに渡せるようになります。一部のファイルの種類は、コードを実行できるため本質的に危険であると認識されており、この値を指定しない場合はブロックされます。

FTA_AlwaysUseDirectInvoke41943040x400000Windows 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 の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
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 Enum
import 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* = 4194304
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,
}
#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)。