OPENFILENAMEW 構造体 (commdlg.h)

[Windows Vista 以降、 共通のダイアログ ボックスと [名前を付けて保存 ] ダイアログ ボックスは、[ 共通アイテム] ダイアログボックスに置き換えられていた。 共通ダイアログ ボックス ライブラリのこれらのダイアログ ボックスの代わりに、共通項目ダイアログ API を使用することをお勧めします。

GetOpenFileName 関数と GetSaveFileName 関数が [開く] ダイアログ ボックスまたは [名前を付けて保存] ダイアログ ボックスを初期化するために使用する情報を格納します。 ユーザーがダイアログ ボックスを閉じると、この構造のユーザーの選択に関する情報が返されます。

構文

typedef struct tagOFNW {
  DWORD         lStructSize;
  HWND          hwndOwner;
  HINSTANCE     hInstance;
  LPCWSTR       lpstrFilter;
  LPWSTR        lpstrCustomFilter;
  DWORD         nMaxCustFilter;
  DWORD         nFilterIndex;
  LPWSTR        lpstrFile;
  DWORD         nMaxFile;
  LPWSTR        lpstrFileTitle;
  DWORD         nMaxFileTitle;
  LPCWSTR       lpstrInitialDir;
  LPCWSTR       lpstrTitle;
  DWORD         Flags;
  WORD          nFileOffset;
  WORD          nFileExtension;
  LPCWSTR       lpstrDefExt;
  LPARAM        lCustData;
  LPOFNHOOKPROC lpfnHook;
  LPCWSTR       lpTemplateName;
  LPEDITMENU    lpEditInfo;
  LPCSTR        lpstrPrompt;
  void          *pvReserved;
  DWORD         dwReserved;
  DWORD         FlagsEx;
} OPENFILENAMEW, *LPOPENFILENAMEW;

メンバー

lStructSize

型: DWORD

構造体の長さ (バイト単位)。 このパラメーターには を使用 sizeof (OPENFILENAME) します。

hwndOwner

型: HWND

ダイアログ ボックスを所有するウィンドウへのハンドル。 このメンバーは、任意の有効なウィンドウ ハンドルにすることも、ダイアログ ボックスに所有者がいない場合は NULL にすることもできます。

hInstance

種類: HINSTANCE

OFN_ENABLETEMPLATEHANDLE フラグが Flags メンバーで設定されている場合、hInstance はダイアログ ボックス テンプレートを含むメモリ オブジェクトへのハンドルです。 OFN_ENABLETEMPLATE フラグが設定されている場合、hInstancelpTemplateName メンバーによって名前付けされたダイアログ ボックス テンプレートを含むモジュールへのハンドルです。 どちらのフラグも設定されていない場合、このメンバーは無視されます。 OFN_EXPLORER フラグが設定されている場合、システムは指定されたテンプレートを使用して、既定のエクスプローラー スタイルのダイアログ ボックスの子であるダイアログ ボックスを作成します。 OFN_EXPLORER フラグが設定されていない場合、システムはテンプレートを使用して、既定のダイアログ ボックスを置き換える古いスタイルのダイアログ ボックスを作成します。

lpstrFilter

種類: LPCTSTR

null で終わるフィルター文字列のペアを含むバッファー。 バッファー内の最後の文字列は、2 つの NULL 文字で終わる必要があります。

各ペアの最初の文字列は、フィルター ("Text Files" など) を記述する表示文字列であり、2 番目の文字列はフィルター パターン (".TXT" など) を指定します。1 つの表示文字列に複数のフィルター パターンを指定するには、セミコロンを使用してパターンを区切ります (例: ".TXT;.DOC;.BAK")。 パターン文字列には、有効なファイル名文字とアスタリスク (*) ワイルドカード文字の組み合わせを指定できます。 パターン文字列にスペースを含めないでください。

システムは、フィルターの順序を変更しません。 lpstrFilter で指定された順序で [ファイルの種類] コンボ ボックスに表示されます。

lpstrFilterNULL の場合、ダイアログ ボックスにはフィルターは表示されません。

ショートカットの場合、フィルターが設定されていない場合、 GetOpenFileNameGetSaveFileName はターゲットではなく、.lnk ファイルの名前を取得します。 この動作は、Flags メンバーでOFN_NODEREFERENCELINKS フラグを設定する場合と同じです。 フィルター処理を行わずにショートカットのターゲットを取得するには、文字列 を使用します "All Files\0*.*\0\0"

lpstrCustomFilter

種類: LPTSTR

ユーザーが選択したフィルター パターンを保持するための null で終わるフィルター文字列のペアを含む静的バッファー。 最初の文字列はカスタム フィルターを記述する表示文字列で、2 番目の文字列はユーザーが選択したフィルター パターンです。 アプリケーションで初めてダイアログ ボックスを作成するときは、最初の文字列を指定します。この文字列は、空でない文字列でもかまいません。 ユーザーがファイルを選択すると、ダイアログ ボックスは現在のフィルター パターンを 2 番目の文字列にコピーします。 保持されるフィルター パターンには、 lpstrFilter バッファーで指定されたパターンの 1 つを指定することも、ユーザーが入力したフィルター パターンを指定することもできます。 システムは、次にダイアログ ボックスが作成されるときに、文字列を使用してユーザー定義ファイル フィルターを初期化します。 nFilterIndex メンバーが 0 の場合、ダイアログ ボックスではカスタム フィルターが使用されます。

このメンバーが NULL の場合、ダイアログ ボックスはユーザー定義のフィルター パターンを保持しません。

このメンバーが NULL でない場合、 nMaxCustFilter メンバーの値は、 lpstrCustomFilter バッファーのサイズを文字数で指定する必要があります。

nMaxCustFilter

型: DWORD

lpstrCustomFilter によって識別されるバッファーのサイズ (文字数)。 このバッファーの長さが 40 文字以上である必要があります。 lpstrCustomFilterNULL であるか、NULL文字列を指している場合、このメンバーは無視されます。

nFilterIndex

型: DWORD

[ファイルの種類] コントロールで現在選択されているフィルターのインデックス。 lpstrFilter によって指されるバッファーには、フィルターを定義する文字列のペアが含まれています。 文字列の最初のペアのインデックス値は 1、2 番目のペアは 2 です。 インデックス 0 は、 lpstrCustomFilter で指定されたカスタム フィルターを示します。 入力時にインデックスを指定して、ダイアログ ボックスの初期フィルターの説明とフィルター パターンを示すことができます。 ユーザーがファイルを選択すると、 nFilterIndex は現在表示されているフィルターのインデックスを返します。 nFilterIndex が 0 で lpstrCustomFilterNULL の場合、システムは lpstrFilter バッファー内の最初のフィルターを使用します。 3 つのメンバーがすべて 0 または NULL の場合、システムはフィルターを使用せず、ダイアログ ボックスのファイル リスト コントロールにファイルを表示しません。

lpstrFile

種類: LPTSTR

ファイル名編集コントロールの初期化に使用される ファイル名 。 初期化が必要ない場合、このバッファーの最初の文字は NULL である必要があります。 GetOpenFileName または GetSaveFileName 関数が正常に返されると、このバッファーには、選択したファイルのドライブ指定子、パス、ファイル名、および拡張子が含まれます。

OFN_ALLOWMULTISELECT フラグが設定され、ユーザーが複数のファイルを選択した場合、バッファーには現在のディレクトリと、選択したファイルのファイル名が含まれます。 エクスプローラースタイルのダイアログ ボックスでは、ディレクトリとファイル名の文字列は NULL で区切られ、最後のファイル名の後に追加の NULL 文字が付きます。 古いスタイルのダイアログ ボックスの場合、文字列はスペースで区切られ、関数はスペースを含むファイル名に短いファイル名を使用します。 FindFirstFile 関数を使用して、長いファイル名と短いファイル名を変換できます。 ユーザーが 1 つのファイルのみを選択した場合、 lpstrFile 文字列にはパスとファイル名の間に区切り記号はありません。

バッファーが小さすぎる場合、関数は FALSE を 返し、 CommDlgExtendedError 関数は FNERR_BUFFERTOOSMALLを返します。 この場合、 lpstrFile バッファーの最初の 2 バイトには、必要なサイズ (バイトまたは文字) が含まれます。

nMaxFile

型: DWORD

lpstrFile が指すバッファーのサイズ (文字数)。 バッファーは、パスとファイル名の文字列または文字列 (終端 の NULL 文字を含む) を格納するのに十分な大きさにする必要があります。 バッファーが小さすぎてファイル情報が格納されていない場合、 GetOpenFileName 関数と GetSaveFileName 関数は FALSE を 返します。 バッファーの長さが 256 文字以上である必要があります。

lpstrFileTitle

種類: LPTSTR

選択したファイルのファイル名と拡張子 (パス情報なし)。 このメンバーには NULL を指定できます。

nMaxFileTitle

型: DWORD

lpstrFileTitle が指すバッファーのサイズ (文字数)。 lpstrFileTitleNULL の場合、このメンバーは無視されます。

lpstrInitialDir

種類: LPCTSTR

初期ディレクトリ。 初期ディレクトリを選択するためのアルゴリズムは、プラットフォームによって異なります。

Windows 7:

  1. lpstrInitialDir の値が、アプリケーションで [開く] または [名前を付けて保存] ダイアログ ボックスを初めて使用した場合に渡された値と同じ場合、ユーザーが最後に選択したパスが初期ディレクトリとして使用されます。
  2. それ以外の場合、 lpstrFile に パスが含まれている場合、そのパスは初期ディレクトリになります。
  3. それ以外の場合、 lpstrInitialDirNULL でない場合は、初期ディレクトリを指定します。
  4. lpstrInitialDirNULL で、現在のディレクトリに指定されたフィルターの種類のファイルが含まれている場合、初期ディレクトリは現在のディレクトリです。
  5. それ以外の場合、初期ディレクトリは現在のユーザーの個人用ファイル ディレクトリです。
  6. それ以外の場合、初期ディレクトリは Desktop フォルダーです。
Windows 2000/XP/Vista:
  1. lpstrFile にパスが含まれている場合、そのパスは初期ディレクトリです。
  2. それ以外の場合、 lpstrInitialDir は初期ディレクトリを指定します。
  3. それ以外の場合、アプリケーションで過去に [開く ] または [名前を付けて保存] ダイアログ ボックスを使用した場合は、最後に使用したパスが初期ディレクトリとして選択されます。 ただし、アプリケーションが長時間実行されない場合、保存された選択したパスは破棄されます。
  4. lpstrInitialDirNULL で、現在のディレクトリに指定されたフィルターの種類のファイルが含まれている場合、初期ディレクトリは現在のディレクトリです。
  5. それ以外の場合、初期ディレクトリは現在のユーザーの個人用ファイル ディレクトリです。
  6. それ以外の場合、初期ディレクトリは Desktop フォルダーです。

lpstrTitle

種類: LPCTSTR

ダイアログ ボックスのタイトル バーに配置する文字列。 このメンバーが NULL の場合、システムは既定のタイトル (名前を 付けて保存 または 開く) を使用します。

Flags

型: DWORD

ダイアログ ボックスの初期化に使用できるビット フラグのセット。 ダイアログ ボックスが戻ると、ユーザーの入力を示すようにこれらのフラグが設定されます。 このメンバーには、次のフラグを組み合わせて使用できます。

意味
OFN_ALLOWMULTISELECT
0x00000200
[ ファイル名] リスト ボックスでは、複数の選択を行えます。 OFN_EXPLORER フラグも設定すると、ダイアログ ボックスはエクスプローラースタイルのユーザー インターフェイスを使用します。それ以外の場合は、古いスタイルのユーザー インターフェイスを使用します。

ユーザーが複数のファイルを選択した場合、 lpstrFile バッファーは、現在のディレクトリへのパスと、選択したファイルのファイル名を返します。 nFileOffset メンバーは、最初のファイル名へのオフセット (バイトまたは文字単位) であり、nFileExtension メンバーは使用されません。 エクスプローラースタイルのダイアログ ボックスでは、ディレクトリとファイル名の文字列は NULL で区切られ、最後のファイル名の後に追加の NULL 文字が付きます。 この形式を使用すると、エクスプローラー スタイルのダイアログ ボックスは、スペースを含む長いファイル名を返します。 古いスタイルのダイアログ ボックスでは、ディレクトリとファイル名の文字列はスペースで区切られ、関数はスペースを含むファイル名に短いファイル名を使用します。 FindFirstFile 関数を使用して、長いファイル名と短いファイル名を変換できます。

古いスタイルのダイアログ ボックスにカスタム テンプレートを指定する場合は、[ ファイル名 ] リスト ボックスの定義に LBS_EXTENDEDSEL 値が含まれている必要があります。

OFN_CREATEPROMPT
0x00002000
ユーザーが存在しないファイルを指定した場合、このフラグにより、ファイルを作成するアクセス許可をユーザーに求めるダイアログ ボックスが表示されます。 ユーザーがファイルの作成を選択すると、ダイアログ ボックスが閉じ、関数は指定した名前を返します。それ以外の場合、ダイアログ ボックスは開いたままです。 このフラグを OFN_ALLOWMULTISELECT フラグと共に使用すると、ユーザーは存在しないファイルを 1 つだけ指定できます。
OFN_DONTADDTORECENT
0x02000000
ユーザーが最近使用したドキュメントを含むファイル システム ディレクトリ内の選択したファイルへのリンクをシステムが追加できないようにします。 このディレクトリの場所を取得するには、CSIDL_RECENT フラグを指定して SHGetSpecialFolderLocation 関数を呼び出します。
OFN_ENABLEHOOK
0x00000020
lpfnHook メンバーで指定されたフック関数を有効にします。
OFN_ENABLEINCLUDENOTIFY
0x00400000
ユーザーがフォルダーを開いたときに、ダイアログ ボックス CDN_INCLUDEITEM 通知メッセージを OFNHookProc フック プロシージャに送信します。 ダイアログ ボックスは、新しく開いたフォルダー内の各項目に対して通知を送信します。 これらのメッセージを使用すると、ダイアログ ボックスがフォルダーのアイテム 一覧に表示するアイテムを制御できます。
OFN_ENABLESIZING
0x00800000
マウスまたはキーボードを使用して、エクスプローラースタイルのダイアログ ボックスのサイズを変更できるようにします。 既定では、エクスプローラー スタイルの [開く] ダイアログ ボックスと [名前を付けて保存] ダイアログ ボックスでは、このフラグが設定されているかどうかに関係なく、ダイアログ ボックスのサイズを変更できます。 このフラグは、フック プロシージャまたはカスタム テンプレートを指定する場合にのみ必要です。 古いスタイルのダイアログ ボックスでは、サイズ変更は許可されません。
OFN_ENABLETEMPLATE
0x00000040
lpTemplateName メンバーは、hInstance メンバーによって識別されるモジュール内のダイアログ テンプレート リソースの名前へのポインターです。 OFN_EXPLORER フラグが設定されている場合、システムは指定されたテンプレートを使用して、既定のエクスプローラー スタイルのダイアログ ボックスの子であるダイアログ ボックスを作成します。 OFN_EXPLORER フラグが設定されていない場合、システムはテンプレートを使用して、既定のダイアログ ボックスを置き換える古いスタイルのダイアログ ボックスを作成します。
OFN_ENABLETEMPLATEHANDLE
0x00000080
hInstance メンバーは、事前に読み込まれたダイアログ ボックス テンプレートを含むデータ ブロックを識別します。 このフラグが指定されている場合、システムは lpTemplateName を 無視します。 OFN_EXPLORER フラグが設定されている場合、システムは指定されたテンプレートを使用して、既定のエクスプローラー スタイルのダイアログ ボックスの子であるダイアログ ボックスを作成します。 OFN_EXPLORER フラグが設定されていない場合、システムはテンプレートを使用して、既定のダイアログ ボックスを置き換える古いスタイルのダイアログ ボックスを作成します。
Ofn_explorer
0x00080000
[開く] または [名前を付けて保存] ダイアログ ボックスに対して行われたカスタマイズで、エクスプローラー スタイルのカスタマイズ メソッドが使用されることを示します。 詳細については、「エクスプローラー スタイルのフック プロシージャ」および「エクスプローラー スタイルのカスタム テンプレート」を参照してください

既定では、[開く] ダイアログ ボックスと [名前を付けて保存] ダイアログ ボックスでは、このフラグが設定されているかどうかに関係なく、エクスプローラー スタイルのユーザー インターフェイスが使用されます。 このフラグは、フック プロシージャまたはカスタム テンプレートを指定するか、 OFN_ALLOWMULTISELECT フラグを設定する場合にのみ必要です。

古いスタイルのユーザー インターフェイスが必要な場合は、 OFN_EXPLORER フラグを省略し、代わりの古いスタイルのテンプレートまたはフック プロシージャを指定します。 古いスタイルが必要で、カスタム テンプレートまたはフック プロシージャが必要ない場合は、常に FALSE を返すフック プロシージャを指定します。

OFN_EXTENSIONDIFFERENT
0x00000400
ユーザーは、 lpstrDefExt で指定された拡張子とは異なるファイル名拡張子を入力しました。 lpstrDefExtNULL の場合、関数はこのフラグを使用しません。
OFN_FILEMUSTEXIST
0x00001000
ユーザーは、[ ファイル名 ] エントリ フィールドに既存のファイルの名前のみを入力できます。 このフラグを指定し、ユーザーが無効な名前を入力した場合、ダイアログ ボックスプロシージャはメッセージ ボックスに警告を表示します。 このフラグを指定すると、 OFN_PATHMUSTEXIST フラグも使用されます。 このフラグは、[ 開く ] ダイアログ ボックスで使用できます。 [ 名前を付けて保存] ダイアログ ボックスでは使用できません。
OFN_FORCESHOWHIDDEN
0x10000000
強制的にシステムファイルと隠しファイルを表示し、ユーザー設定をオーバーライドして隠しファイルを表示するか表示しないようにします。 ただし、システムと非表示の両方のマークが付けられたファイルは表示されません。
OFN_HIDEREADONLY
0x00000004
[読み取り専用] チェック ボックスを非表示にします。
OFN_LONGNAMES
0x00200000
古いスタイルのダイアログ ボックスの場合、このフラグを指定すると、ダイアログ ボックスで長いファイル名が使用されます。 このフラグが指定されていない場合、または OFN_ALLOWMULTISELECT フラグも設定されている場合、古いスタイルのダイアログ ボックスでは、スペースを含むファイル名に短いファイル名 (8.3 形式) が使用されます。 エクスプローラースタイルのダイアログ ボックスでは、このフラグは無視され、常に長いファイル名が表示されます。
OFN_NOCHANGEDIR
0x00000008
ユーザーがファイルの検索中にディレクトリを変更した場合は、現在のディレクトリを元の値に復元します。

このフラグは 、GetOpenFileName には無効です。

OFN_NODEREFERENCELINKS
0x00100000
ダイアログ ボックスに、選択したショートカットのパスとファイル名を返すように指示します (LNK) ファイル。 この値を指定しない場合、ダイアログ ボックスはショートカットによって参照されるファイルのパスとファイル名を返します。
OFN_NOLONGNAMES
0x00040000
古いスタイルのダイアログ ボックスの場合、このフラグを設定すると、ダイアログ ボックスで短いファイル名 (8.3 形式) が使用されます。 エクスプローラースタイルのダイアログ ボックスでは、このフラグは無視され、常に長いファイル名が表示されます。
OFN_NONETWORKBUTTON
0x00020000
[ネットワーク] ボタンを非表示または無効にします。
OFN_NOREADONLYRETURN
0x00008000
返されたファイルでは、[読み取り専用] チェック ボックスが選択されておらず、書き込みで保護されたディレクトリにはありません。
OFN_NOTESTFILECREATE
0x00010000
ダイアログ ボックスを閉じる前にファイルが作成されません。 アプリケーションがファイルを create-nonmodify ネットワーク共有に保存する場合は、このフラグを指定する必要があります。 アプリケーションでこのフラグが指定されている場合、ライブラリは書き込み保護、完全ディスク、オープン ドライブ ドア、またはネットワーク保護に対してチェックされません。 このフラグを使用するアプリケーションは、ファイルを閉じた後に再度開くことができないため、ファイル操作を慎重に実行する必要があります。
OFN_NOVALIDATE
0x00000100
一般的なダイアログ ボックスでは、返されるファイル名に無効な文字を使用できます。 通常、呼び出し元のアプリケーションは、 FILEOKSTRING メッセージを使用してファイル名をチェックするフック プロシージャを使用します。 編集コントロールのテキスト ボックスが空の場合、またはスペース以外のテキスト ボックスが含まれている場合は、ファイルとディレクトリの一覧が更新されます。 編集コントロールのテキスト ボックスに他のものが含まれている場合、 nFileOffsetnFileExtension はテキストの解析によって生成された値に設定されます。 既定の拡張子はテキストに追加されません。また、 テキストは lpstrFileTitle で指定されたバッファーにコピーされません。 nFileOffset で指定された値が 0 未満の場合、ファイル名は無効です。 それ以外の場合、ファイル名は有効であり、 nFileExtensionnFileOffset、OFN_NOVALIDATE フラグが指定されていないかのように使用できます。
OFN_OVERWRITEPROMPT
0x00000002
選択したファイルが既に存在する場合、[ 名前を付けて保存] ダイアログ ボックスでメッセージ ボックスを生成します。 ユーザーは、ファイルを上書きするかどうかを確認する必要があります。
OFN_PATHMUSTEXIST
0x00000800
ユーザーは、有効なパスとファイル名のみを入力できます。 このフラグを使用し、ユーザーが [ ファイル名 ] エントリ フィールドに無効なパスとファイル名を入力した場合、ダイアログ ボックス関数はメッセージ ボックスに警告を表示します。
OFN_READONLY
0x00000001
ダイアログ ボックスの作成時に、[読み取り専用チェック] ボックスを最初に選択します。 このフラグは、ダイアログ ボックスが閉じられたときの読み取り専用チェック ボックスの状態を示します。
OFN_SHAREAWARE
0x00004000
ネットワーク共有違反が原因で OpenFile 関数の呼び出しが失敗した場合、エラーは無視され、ダイアログ ボックスは選択したファイル名を返すように指定します。 このフラグが設定されていない場合、ダイアログ ボックスは、ユーザーが指定したファイル名に対してネットワーク共有違反が発生したときにフック プロシージャに通知します。 OFN_EXPLORER フラグを設定すると、ダイアログ ボックスから CDN_SHAREVIOLATION メッセージがフック プロシージャに送信されます。 OFN_EXPLORER設定しない場合、ダイアログ ボックスは SHAREVISTRING 登録済みメッセージをフック プロシージャに送信します。
OFN_SHOWHELP
0x00000010
ダイアログ ボックスに [ヘルプ ] ボタンが表示されます。 hwndOwner メンバーは、ユーザーが [ヘルプ] ボタンをクリックしたときにダイアログ ボックスが送信する HELPMSGSTRING 登録済みメッセージを受信するウィンドウを指定する必要があります。 エクスプローラースタイルのダイアログ ボックスでは、ユーザーが [ヘルプ] ボタンをクリックすると、CDN_HELP通知メッセージがフック プロシージャに送信されます。

nFileOffset

種類: WORD

パスの先頭から lpstrFile が指す文字列内のファイル名までの 0 から始まるオフセット (文字数)。 ANSI バージョンの場合、これはバイト数です。Unicode バージョンの場合、これは文字数です。 たとえば、 lpstrFile が "c:\dir1\dir2\file.ext" という文字列を指している場合、このメンバーには"file.ext" 文字列のオフセットを示す値 13 が含まれます。 ユーザーが複数のファイルを選択した場合、 nFileOffset は最初のファイル名へのオフセットです。

nFileExtension

種類: WORD

パスの先頭から lpstrFile が指す文字列内のファイル名拡張子までの 0 から始まるオフセット (文字数)。 ANSI バージョンの場合、これはバイト数です。Unicode バージョンの場合、これは文字数です。 通常、ファイル名の拡張子は、ドット (".") 文字が最後に出現した後の部分文字列です。 たとえば、txt はファイル名 readme.txt の拡張子で、html は readme.txt.html の拡張子です。 したがって、 lpstrFile が 文字列 "c:\dir1\dir2\readme.txt" を指している場合、このメンバーには値 20 が含まれます。 lpstrFile が文字列 "c:\dir1\dir2\readme.txt.html" を指している場合、このメンバーには値 24 が含まれます。 lpstrFile が文字列 "c:\dir1\dir2\readme.txt.html." を指している場合、このメンバーには値 29 が含まれます。 lpstrFile が "c:\dir1\dir2\readme" などの "." 文字を含まない文字列を指している場合、このメンバーには 0 が含まれます。

lpstrDefExt

種類: LPCTSTR

既定の拡張機能。 GetOpenFileNameGetSaveFileName は、ユーザーが拡張子の入力に失敗した場合に、この拡張子をファイル名に追加します。 この文字列は任意の長さにできますが、最初の 3 文字のみが追加されます。 文字列にピリオド (.) を含めないようにしてください。 このメンバーが NULL で、ユーザーが拡張機能の入力に失敗した場合、拡張子は追加されません。

lCustData

型: LPARAM

システムが lpfnHook メンバーによって識別されるフック・プロシージャーに渡すアプリケーション定義データ。 システムが WM_INITDIALOG メッセージをフック・プロシージャーに送信する場合、メッセージの lParam パラメーターは、ダイアログ・ボックスの作成時に指定された OPENFILENAME 構造体へのポインターです。 フック プロシージャでは、このポインターを使用して lCustData 値を取得できます。

lpfnHook

種類: LPOFNHOOKPROC

フック プロシージャへのポインター。 Flags メンバーに OFN_ENABLEHOOK フラグが含まれていない限り、このメンバーは無視されます。

OFN_EXPLORER フラグが Flags メンバーに設定されていない場合、lpfnHook は、ダイアログ ボックス用のメッセージを受信する OFNHookProcOldStyle フック プロシージャへのポインターです。 フック プロシージャは 、既定 のダイアログ ボックス プロシージャにメッセージを渡す場合は FALSE を返し、メッセージを破棄するには TRUE を 返します。

OFN_EXPLORERが設定されている場合、lpfnHookOFNHookProc フック プロシージャへのポインターです。 フック プロシージャは、ダイアログ ボックスから送信された通知メッセージを受信します。 フック プロシージャは、子ダイアログ テンプレートを指定して定義した追加のコントロールのメッセージも受信します。 フック プロシージャは、既定のダイアログ ボックスの標準コントロールを対象としたメッセージを受信しません。

lpTemplateName

種類: LPCTSTR

hInstance メンバーによって識別されるモジュール内のダイアログ テンプレート リソースの名前。 番号付きダイアログ ボックス リソースの場合、 MAKEINTRESOURCE マクロによって返される値を指定できます。 フラグ メンバーで OFN_ENABLETEMPLATE フラグが設定されていない限 り、この メンバーは無視されます。 OFN_EXPLORER フラグが設定されている場合、システムは指定されたテンプレートを使用して、既定のエクスプローラー スタイルのダイアログ ボックスの子であるダイアログ ボックスを作成します。 OFN_EXPLORER フラグが設定されていない場合、システムはテンプレートを使用して、既定のダイアログ ボックスを置き換える古いスタイルのダイアログ ボックスを作成します。

lpEditInfo

このメンバーは条件付きでコンパイルされ (を使用) #ifdef _MAC、Motorola 68K Macintosh コンピューターにのみ適用され、Windows クライアント オペレーティング システムには適用されません。

lpstrPrompt

このメンバーは条件付きでコンパイルされ (を使用) #ifdef _MAC、Motorola 68K Macintosh コンピューターにのみ適用され、Windows クライアント オペレーティング システムには適用されません。

pvReserved

型: void*

このメンバーは予約されています。

dwReserved

型: DWORD

このメンバーは予約されています。

FlagsEx

型: DWORD

ダイアログ ボックスの初期化に使用できるビット フラグのセット。 現在、このメンバーには 0 または次のフラグを指定できます。

意味
OFN_EX_NOPLACESBAR
0x00000001
このフラグが設定されている場合、プレース バーは表示されません。 このフラグが設定されていない場合、エクスプローラースタイルのダイアログ ボックスには、[お気に入り] や [デスクトップ] など、一般的に使用されるフォルダーのアイコンを含むプレース バーが含まれます。

注釈

互換性上の理由から、フラグが OFN_ENABLEHOOK に設定され、lStructSizeOPENFILENAME_SIZE_VERSION_400されている場合、Places バーは非表示になります。

注意

commdlg.h ヘッダーは、OPENFILENAME をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
Header commdlg.h (Windows.h を含む)

こちらもご覧ください

共通ダイアログ ボックス ライブラリ

概念

GetOpenFileName

GetSaveFileName

その他のリソース

リファレンス

SHGetSpecialFolderLocation