ファイルの種類

このトピックでは、新しいファイルの種類を作成する方法と、アプリをファイルの種類やその他の適切に定義されたファイルの種類に関連付ける方法について説明します。 共有共通ファイル名拡張子 (.doc、.htmlなど) を持つファイルの 種類は同じです。 たとえば、新しいテキスト エディターを作成する場合は、既存の.txtファイルの種類を使用できます。 それ以外の場合は、新しいファイルの種類を作成する必要があります。

このトピックは次のように整理されています。

追加情報については、次のトピックを参照してください。

パブリック ファイルとプライベート ファイルの種類

パブリック ファイルの種類は、一般的または競合する種類とも呼ばれます。競合するアプリケーションは、これらのファイルの種類に関連付ける必要があるためです。 パブリック ファイルの種類の特性は次のとおりです。

  • これらは通常、標準本体によって定義され、インターチェンジ形式として定義されている組織によって昇格されます。
  • 多くの場合、さまざまな目的でコンピューターとユーザーの間で交換されます。
  • 多くの異なるプラットフォームでサポートされている必要があります。
  • 複数のベンダーからのアプリケーションがそれらを処理する可能性があります。

public と見なされるファイルの種類には、イメージ ファイルの種類.png、.gif、.jpg、.bmp、オーディオの種類 .wav、.mp3、.au があります。

パブリック ファイルの種類とは異なり、プライベートまたは独自のファイルの種類には、通常、1 つのアプリケーションまたはベンダーのみが実装して理解する形式があります。 その結果、プライベート ファイルの種類は通常、アプリケーション間で競合する傾向がありません。 一部のファイルの種類はプライベート ファイルの種類として開始できますが、後でパブリック ファイルの種類になります。

注意

Windows では、パブリック ファイルとプライベート ファイルの種類は区別されません。 この区別は、ファイルの種類の登録の選択に関する決定を行う場合にのみ関連します。

 

ファイルの種類の登録

ファイルの種類を既存のアプリケーションに関連付けるには、レジストリでアプリケーション ProgID を見つけます。 ファイルの種類を新しいアプリケーションに関連付けるには、アプリケーションの ProgID を定義します。 新しい ProgID の定義については、「 プログラム識別子」を参照してください。

ファイル名拡張子サブキーの一般的な形式は、 拡張子=ProgID です。 ファイル名拡張子サブキーは、 HKEY_CLASSES_ROOT サブツリーに格納されます。

レジストリにファイルの種類のサブキーを作成するときは、先頭のピリオド (.) を含める必要があります。 たとえば、短い拡張子が .myp のファイルの種類と長い拡張子の .myp-file を MyProgram というアプリケーションで開く場合は、次の構文を使用します。

HKEY_CLASSES_ROOT
   .myp
      (Default) = ApplicationVendor.MyProgram
   .myp-file
      (Default) = ApplicationVendor.MyProgram
   ApplicationVendor.MyProgram
      (Default) = MyProgram Application

前の例で示したように、短いファイル名拡張子 (.myp) も登録する場合は、長い拡張子 (.myp-file) のサブキーも作成する必要があります。 詳細については、「 ファイルの種類のハンドラー」を参照してください。

オプションのサブキーとファイルの種類の拡張属性の設定

レジストリ内のファイルの種類の拡張エントリには、いくつかのオプションのサブキーと属性があります。

ファイルの関連付けによって使用されるファイルの種類の拡張エントリを次の表に示します。 すべての値は 、REG_SZ 型です。

レジストリ エントリ アクション
Default 拡張サブキーの既定値を、リンク先の ProgID に設定します。
コンテンツ タイプ [コンテンツ タイプ] の値をファイル の種類の MIME コンテンツ タイプに設定します。
OpenWithList 使用しないでください。 このサブキーには、ファイルの種類の [開 ] ダイアログ ボックスのエントリに表示されるアプリケーション用のアプリケーション サブキーが 1 つ以上含まれており、Windows XP より前のオペレーティング システムで.exeアプリケーションのみを対象としています。 代わりに OpenWithProgIds を使用してください。
OpenWithProgIds このサブキーには、このファイルの種類の代替 ProgID の一覧が含まれています。 これらの ProgID のプログラムは、[ プログラムを使用して開く ] メニューに表示され、ファイルの種類の既定の Windows ストア アプリとして使用できます。 アプリケーションが既定値を変更してこのファイルの種類を引き継ぐたびに、この一覧にエントリを追加する必要があります。
PerceivedType PerceivedType 値を、ファイルが属する PerceivedType (存在する場合) に設定します。 この文字列は、Windows Vista より前のバージョンの Windows では使用されません。 詳細については、「 認識される型とアプリケーションの登録」を参照してください。

 

ファイル名拡張子サブキーの一般的な形式は次のとおりです。 すべてのエントリの種類は 、REG_SZ の種類です。

HKEY_CLASSES_ROOT
   .ext
      (Default) = ProgID.ext.1
      Content Type = MIME content type
      PerceivedType = PerceivedType
      OpenWithProgids
         ProgID2.ext.1
         ProgID3.ext.1
      ProgID.ext.1
         shellnew

ファイルの種類に関する重要な考慮事項は次のとおりです。

  • HKEY_CLASSES_ROOT サブツリーは、HKEY_CURRENT_USER ソフトウェアクラス\HKEY_LOCAL_MACHINE\ソフトウェア\\ クラスをマージして形成されたビューです

  • 一般に、 HKEY_CLASSES_ROOT は読み取りを目的としていますが、書き込むものではありません。 詳細については、 HKEY_CLASSES_ROOTに関する記事を 参照してください。

  • 特定のコンピューターにファイルの種類をグローバルに登録するには、HKEY_LOCAL_MACHINE\ソフトウェア\ クラス サブキーにファイルの種類のエントリ作成します。

  • ファイルの種類の登録を現在のユーザーのみに表示するには、HKEY_CURRENT_USER\ソフトウェア\ クラス サブキーにファイルの種類のエントリ作成します。

  • アプリケーションは、次のレジストリ例に示すように、オープンやプレイなどの動詞の独自の実装を提供できます。

    HKEY_CLASSES_ROOT
       Applications
          ApplicationName.exe
             shell
                verb
    

    動詞サブキーのサブキーには、コマンド ラインとドロップ ターゲット メソッド ( commandDropTarget) が含まれます

  • ファイルの関連付けを作成または変更するときは、変更したことをシステムに通知することが重要です。 これを行うには、 SHChangeNotify を 呼び出し、 SHCNE_ASSOCCHANGED イベントを指定します。 SHChangeNotify を呼び出さない場合、システムが再起動されるまで変更が認識されない可能性があります。

  • ファイルの関連付けに関するレジストリ情報を取得するには、 IQueryAssociations インターフェイスを 使用します。 この手順を示すシナリオについては、「 ファイル関連付けのサンプル シナリオ」を参照してください。

注意

アプリ パスとアプリケーション レジストリ サブキー両方を使用して、アプリケーションに代わってシステムの動作を登録および制御します。 この機能の詳細については、「 アプリケーションの登録」を参照してください。

 

アンインストール中のレジストリ情報の削除

アプリケーションをアンインストールするときは、アンインストールの一環として、そのアプリケーションに関連付けられている ProgID とその他のほとんどのレジストリ情報を削除する必要があります。 ただし、ファイルの種類の所有権を取得したアプリケーション (ファイルの種類の HKEY_CLASSES_ROOT.extension\ サブキーの既定値をアプリケーションの ProgID に設定) は、アンインストール時にその値の削除を試みてはいけません。 既定値のデータをそのままにしておくと、別のアプリケーションがファイルの種類の所有権を取得し、元のアプリケーションのインストール後に既定値を上書きしたかどうかを判断するのが困難になります。 Windows では、ProgID で登録済みの ProgID が見つかった場合にのみ、既定値が適用されます。 ProgID が登録解除されている場合は無視されます。

他のファイルの種類の所有権情報は 、HKEY_CURRENT_USER サブツリーに格納され、参照するアプリケーションが登録されている場合にのみ使用されることに注意してください。 そのため、アプリケーションをアンインストールするときに、このデータを削除する必要はありません。

たとえば、アプリケーションをアンインストールする前のレジストリの状態を次に示します。

HKEY_CLASSES_ROOT
   .mp3
      (Default) = YourProgID
   YourProgID
      shell
         open
            command
               (Default) = yourapp.exe %1

アプリケーションがアンインストールされた後の同じレジストリ エントリの状態を次に示します。

HKEY_CLASSES_ROOT
   .mp3
      (Default) = YourProgID
   YourProgID subkey removed

オープン メタデータをサポートするファイルの種類

Windows 7 以降では、次のファイルの種類で開いているメタデータがサポートされています。

ファイルの種類 ファイルの名前の拡張子
Office 2007 ドキュメント .docx、.xlsx、.pptx
Office 97-2003 ドキュメント .doc、.xls、.ppt
保存する検索条件 .search-ms
Windows メディア ベースの形式 (高度なストリーミング形式 (ASF) コンテナー) .wmv、.wma
MP4 (プロパティ ハンドラー) .mp4、.m4a、.m4v、.mp4v、.m4p、.m4b、.3gp、.3gpp、.3gp2、.mov

 

アプリケーションの登録

ファイルの関連付けのしくみ

ファイルの種類または種類別のコンテンツ ビュー

ファイルの種類の検証ツール

ファイルの種類のハンドラー

プログラム識別子

認識される型

関連付け配列