FILETYPEATTRIBUTEFLAGS 列挙 (shlwapi.h)

ファイル関連付け PROGID レジストリ キーの EditFlags 値で使用される FILETYPEATTRIBUTEFLAGS 定数を示します。

構文

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
値: 0x00000000
FILETYPEATTRIBUTEFLAGS オプションが設定されません。
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
DDE に関連するエントリの変更または削除を禁止します。
FTA_NoEditMIME
値: 0x00008000
コンテンツ タイプと既定の拡張機能エントリの変更または削除を禁止します。
FTA_OpenIsSafe
値: 0x00010000
ダウンロードしたファイルに対して、ファイルの種類の オープン 動詞を安全に呼び出すことができることを示します。 このフラグは、 AssocIsDangerous によって識別される安全なファイルの種類にのみ適用されます。 ユーザー エクスペリエンスを向上させ、アイテムをダウンロードしてアクティブ化するときの不要なユーザー プロンプトを減らすには、ファイルの種類の所有者がこのフラグを指定し、ファイルをダウンロードしてアクティブ化するアプリケーションはこのフラグを尊重する必要があります。
FTA_AlwaysUnsafe
値: 0x00020000
[質問しない] チェックボックスが有効にならないようにします。 このフラグを使用すると 、FTA_OpenIsSafe は尊重されず、 AssocIsDangerous は常に TRUE を返します。
ファイルの種類でコードを実行できる場合は、常にこのフラグを使用するか、コードを実行する前に警告プロンプトを生成するなどして、ファイルの種類ハンドラーによってリスクが軽減されるようにする必要があります。

ユーザーは、[ ファイルの種類 ] ダイアログ ボックスを使用してこの属性をオーバーライドできます。
FTA_NoRecentDocs
値: 0x00100000
このファイルの種類のメンバーを [最近使用したドキュメント] フォルダーに追加することを禁止します。 さらに、Windows 7 以降では、このファイルの種類のメンバーを、アプリケーションのジャンプ リストの [ 最近] または [ 頻繁 ] の自動カテゴリに追加することを禁止します。

このフラグは、このファイルの種類のメンバーが カスタムジャンプリストに追加されるのを制限しません。 また、他のアプリケーションがこのファイルの種類を使用する場合に、他のアプリケーションの自動ジャンプ Listsに追加されるファイルの種類に制限はありません。
FTA_SafeForElevation
値: 0x00200000
Windows 8で導入されました。 低信頼アプリケーションから使用できるファイルまたは URI スキームを安全としてマークします。 インターネットまたはアプリ コンテナーから生成されたファイルは、ファイルが信頼されていないと見なされる例です。 コードを含む信頼されていないファイルは特に危険であり、完全信頼アプリケーションによってファイルを開く場合は、適切なセキュリティ軽減策を適用する必要があります。 コードを実行できるファイル形式のファイルの種類の所有者は、プログラムが、より高い整合性レベルでのコードの実行に関連する特権昇格の脅威を軽減する場合にのみ、このフラグを指定する必要があります。 軽減策には、コードが実行される前にユーザーにプロンプトを表示したり、特権を減らしてコードを実行したりすることが含まれます。

ファイルの種類全体に対してこのフラグを指定することで、アプリ コンテナー内で実行されているアプリは、この種類のファイルを完全信頼で実行されているプログラムに渡すことができます。 一部のファイルの種類は、コードを実行する機能により本質的に危険であると認識され、この値を指定しないとブロックされます。
FTA_AlwaysUseDirectInvoke
値: 0x00400000
Windows 8で導入されました。 ファイルの種類の動詞が、ダウンロードしたバージョンのファイルではなく URI で呼び出されるようにします。 このフラグは、SupportedProtocols または UseUrl 登録を使用して DirectInvoke をサポートするようにファイルの種類の動詞を登録した場合にのみ使用します。

注釈

これらのフラグは、ProgID 登録の EditFlags 値に格納されている可能性のある属性を表します。 EditFlags データは 1 つの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 つのセット関数のいずれかを使用してその値をレジストリに書き戻します。

要件

要件
サポートされている最小のクライアント Windows XP、Windows 2000 Professional、Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
Header shlwapi.h