次の方法で共有


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

lpstrFilter

型: LPCTSTR

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

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

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

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

ショートカットの場合、フィルターが設定されていない場合は、GetOpenFileName を し、GetSaveFileName ターゲットではなく、.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 文字以上にする必要があります。 lpstrCustomFilter が NULL であるか、NULL 文字列を指している場合、このメンバーは無視されます。

nFilterIndex

型: DWORD

ファイルの種類 コントロールで現在選択されているフィルターのインデックス。 lpstrFilter 指すバッファーには、フィルターを定義する文字列のペアが含まれています。 文字列の最初のペアのインデックス値は 1、2 番目のペアは 2 です。 0 のインデックスは、lpstrCustomFilterで指定 カスタム フィルターを示します。 入力時にインデックスを指定して、ダイアログ ボックスの初期フィルターの説明とフィルター パターンを示すことができます。 ユーザーがファイルを選択すると、nFilterIndex 現在表示されているフィルターのインデックスが返されます。 nFilterIndex が 0 で、lpstrCustomFilter が NULL場合、システムは lpstrFilter バッファー内の最初のフィルターを使用します。 3 つのメンバーがすべてゼロまたは 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 が指すバッファーのサイズ (文字単位)。 lpstrFileTitle が NULL場合、このメンバーは無視されます。

lpstrInitialDir

型: LPCTSTR

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

Windows 7:

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

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
ユーザーがフォルダーを開いたときに、ダイアログ ボックスから OFNHookProc フック プロシージャに CDN_INCLUDEITEM 通知メッセージが送信されます。 ダイアログ ボックスは、新しく開いたフォルダー内の各項目の通知を送信します。 これらのメッセージを使用すると、ダイアログ ボックスがフォルダーの項目リストに表示する項目を制御できます。
OFN_ENABLESIZING
0x00800000
マウスまたはキーボードを使用して、エクスプローラー スタイルのダイアログ ボックスのサイズを変更できるようにします。 既定では、エクスプローラー スタイルの [ を開く] ダイアログ ボックスと [名前を付けて保存] ダイアログ ボックス 、このフラグが設定されているかどうかに関係なくダイアログ ボックスのサイズを変更できます。 このフラグは、フック プロシージャまたはカスタム テンプレートを指定する場合にのみ必要です。 古いスタイルのダイアログ ボックスでは、サイズを変更できません。
OFN_ENABLETEMPLATE
0x00000040
lpTemplateName メンバーは、hInstance メンバーによって識別されるモジュール内のダイアログ テンプレート リソースの名前へのポインターです。 OFN_EXPLORER フラグが設定されている場合、システムは指定されたテンプレートを使用して、既定のエクスプローラー スタイルのダイアログ ボックスの子であるダイアログ ボックスを作成します。 OFN_EXPLORER フラグが設定されていない場合、システムはテンプレートを使用して、既定のダイアログ ボックスを置き換える古いスタイルのダイアログ ボックスを作成します。
OFN_ENABLETEMPLATEHANDLE
0x00000080
hInstance メンバーは、プリロードされたダイアログ ボックス テンプレートを含むデータ ブロックを識別します。 このフラグが指定 場合、システムは lpTemplateName を無視します。 OFN_EXPLORER フラグが設定されている場合、システムは指定されたテンプレートを使用して、既定のエクスプローラー スタイルのダイアログ ボックスの子であるダイアログ ボックスを作成します。 OFN_EXPLORER フラグが設定されていない場合、システムはテンプレートを使用して、既定のダイアログ ボックスを置き換える古いスタイルのダイアログ ボックスを作成します。
OFN_EXPLORER
0x00080000
[開く] ダイアログ ボックスまたは [名前を付 けて保存] ダイアログ ボックス に対して行ったカスタマイズで、エクスプローラー スタイルのカスタマイズ 方法が使用されることを示します。 詳細については、「Explorer-Style フック プロシージャの とカスタム テンプレートの Explorer-Styleを参照してください。

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

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

OFN_EXTENSIONDIFFERENT
0x00000400
ユーザーは、lpstrDefExtで指定された拡張子とは異なるファイル名拡張子 入力しました。 lpstrDefExt が NULL場合、この関数はこのフラグを使用しません。
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 メッセージを使用してファイル名をチェックするフック プロシージャを使用します。 編集コントロールのテキスト ボックスが空であるか、スペース以外のテキスト ボックスが含まれている場合は、ファイルとディレクトリの一覧が更新されます。 編集コントロール内のテキスト ボックスに何かが含まれている場合は、nFileOffset し、nFileExtension は、テキストを解析することによって生成された値に設定されます。 既定の拡張子はテキストに追加されません。また、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

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

lCustData

型: LPARAM

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

lpfnHook

型: LPOFNHOOKPROC

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

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

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

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
このフラグが設定されている場合、場所バーは表示されません。 このフラグが設定されていない場合、エクスプローラー スタイルのダイアログ ボックスには、よく使用されるフォルダー (お気に入り、デスクトップなど) のアイコンを含む場所バーが含まれます。

備考

互換性上の理由から、FlagsOFN_ENABLEHOOK に設定され、lStructSize が OPENFILENAME_SIZE_VERSION_400場合、場所バーは非表示になります。

手記

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

必要条件

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

関連項目

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

概念

GetOpenFileName の

GetSaveFileName を する

その他のリソース を する

リファレンス

SHGetSpecialFolderLocation の