次の方法で共有


OPENFILENAMEA 構造体 (commdlg.h)

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

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

構文

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

メンバー

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 未満の場合、ファイル名は無効です。 それ以外の場合、ファイル名は有効であり、 nFileExtension および nFileOffset、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 マクロによって返される値を指定できます。 flags メンバーで 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
このフラグが設定されている場合、places バーは表示されません。 このフラグが設定されていない場合、エクスプローラースタイルのダイアログ ボックスには、[お気に入り] や [デスクトップ] など、一般的に使用されるフォルダーのアイコンを含むプレース バーが含まれます。

解説

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

Note

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

要件

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

関連項目

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

概念

GetOpenFileName

GetSaveFileName

その他のリソース

リファレンス

SHGetSpecialFolderLocation