home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1998 January (DVD) / VPR980100.ISO / OLS / WIN16 / ESAVER04 / ESAVER04.LZH / ESSRC04.LZH / CDFOPEN.BAS next >
BASIC Source File  |  1995-04-22  |  5KB  |  78 lines

  1. Option Explicit
  2.  
  3. 'OPENFILENAME 構造体
  4. Type OPENFILENAME
  5.     lStructSize As Long         '4Bytes 構造体のサイズ
  6.     hwndOwner As Integer        '2Bytes ダイアログボックスを所有するウインドウのハンドル
  7.     hInstance As Integer        '2Bytes ダイアログボックスを所有するプログラムのインスタンス。ダイアログボックステンプレート使用時に指定、VBでは使わない
  8.     lpstrFilter As Long         '4Bytes ファイルの種類指定文字列
  9.     lpstrCustomFilter As Long   '4Bytes 最初に表示するファイルの種類を指定
  10.     nMaxCustFilter As Long      '4Bytes lpstrCustomFilterのバッファーサイズ。40Bytes以上必要。lpstrCustomFilterがNullなら無視
  11.     nFilterIndex As Long        '4Bytes 最初に表示するファイルの種類を指定。lpstrFilterの番号を指定する。
  12.     lpstrFile As Long           '4Bytes 最初に表示するファイル名を指定。ダイアログで選択されたフルパスファイル名もここに返る
  13.     nMaxFile As Long            '4Bytes lpstrFileのサイズ256Bytes以上必要
  14.     lpstrFileTitle As Long      '4BYtes 選択されたファイル名と拡張子がかえる
  15.     nMaxFileTitle As Long       '4Bytes lpstrFileTitleのバッファーサイズ。lpstrFileTitleがNullなら無視
  16.     lpstrInitialDir As Long     '4Bytes 初期状態のdirを指定
  17.     lpstrTitle As Long          '4Bytes ダイアログボックスのタイトル
  18.     Flags As Long               '4Bytes オプションフラグの指定
  19.     nFileOffset As Integer      '2Bytes lpstrFileにかえされる文字列の絶対パスの長さ
  20.     nFileExtension As Integer   '2Bytes lpstrFileにかえされる文字列の絶対パスの拡張子の位置
  21.     lpstrDefExt As Long         '4Bytes デフォルトの拡張子
  22.     lCustData As Long           '4Bytes フック関数で利用するデータ。VBでは使わない
  23.     lpfnHook As Long            '4Bytes メッセージフック関数をさすポインタ。VBでは使わない
  24.     lpTemplateName As Long      '4Bytes ダイアログボックスのテンプレートの指定。VBでは使わない
  25. '                                 合計 72 Bytes
  26. End Type
  27.  
  28. 'OPENFILENAME構造体の Flags Orでつなぐ
  29. Global Const OFN_READONLY = &H1                 '上書き禁止チェックボックスを始めからチェックしておく
  30. Global Const OFN_OVERWRITEPROMPT = &H2          '選択したファイルが既にあるとき問い合わせする
  31. Global Const OFN_HIDEREADONLY = &H4             '上書き禁止チェックボックスを表示しない
  32. Global Const OFN_NOCHANGEDIR = &H8              'ディレクトリ変更を禁止する
  33. Global Const OFN_SHOWHELP = &H10                '[HELP]ボタンを表示する。hWndOwnerを指定しなければならない
  34. Global Const OFN_ENABLEHOOK = &H20              'VBでは指定しない。メッセージのフックを行う。
  35. Global Const OFN_ENABLETEMPLATE = &H40          'VBでは指定しない。メッセージフックしてダイアログを変更するときテンプレートを指定できる
  36. Global Const OFN_ENABLETEMPLATEHANDLE = &H80    'VBでは指定しない。テンプレートをハンドル指定する
  37. Global Const OFN_NOVALIDATE = &H100             'ファイル名として無効な文字が使用できる
  38. Global Const OFN_ALLOWMULTISELECT = &H200       '複数ファイルの選択が可能になる。スペースで区切られたすべてのファイル名が返る。相対パスで返る場合もある
  39. Global Const OFN_EXTENSIONDIFFERENT = &H400     'デフォルト拡張子と指定された拡張子が違うとき設定
  40. Global Const OFN_PATHMUSTEXIST = &H800          '無効なパスが指定されたときに警告
  41. Global Const OFN_FILEMUSTEXIST = &H1000         '存在しないファイル名を指定したとき警告
  42. Global Const OFN_CREATEPROMPT = &H2000          '存在しないファイルが指定されたときファイルを作成するか問い合わせる
  43. Global Const OFN_SHAREAWARE = &H4000            'ネットワーク共有違反エラーを無視する
  44. Global Const OFN_NOREADONLYRETURN = &H8000      'ReadOnly属性ファイルを指定できないようにする
  45. Global Const OFN_NOTESTFILECREATE = &H10000     '
  46.  
  47. Global Const OFN_SHAREFALLTHROUGH = 2
  48. Global Const OFN_SHARENOWARN = 1
  49. Global Const OFN_SHAREWARN = 0
  50.  
  51. 'commdlg.dll -File Open-
  52. 'ファイルを開くダイアログを開く
  53. Declare Function GetOpenFileName Lib "commdlg.dll" (lpofn As OPENFILENAME) As Integer
  54. '
  55. Declare Function GetFileTitle Lib "commdlg.dll" (ByVal FName As String, ByVal Title As String, Size As Integer)
  56.  
  57. 'commdlg.dll -Error Function-
  58. Declare Function CommDlgExtendedError Lib "commdlg.dll" () As Long
  59.  
  60. 'メモリー操作関係 -ByValが使えないのでこれらのAPIでアドレスを探す
  61. 'グローバルメモリーの割り当て
  62. Declare Function GlobalAlloc Lib "Kernel" (ByVal wFlags As Integer, ByVal dwBytes As Long) As Integer
  63. 'wFlags:下記参照    dwBytes:割り当てるサイズ 返り値:メモリーハンドル(hMem)
  64. Global Const GMEM_MOVEABLE = &H2
  65. Global Const GMEM_ZEROINIT = &H40
  66. Global Const GHND = (GMEM_MOVEABLE Or GMEM_ZEROINIT)
  67. 'グローバルメモリーの開放
  68. Declare Function GlobalFree Lib "Kernel" (ByVal hMem As Integer) As Integer
  69. 'グローバルメモリーを移動・削除不可にする
  70. Declare Function GlobalLock Lib "Kernel" (ByVal hMem As Integer) As Long
  71. '返り値:メモリーのアドレス
  72. 'グローバルメモリーのLockを解除する
  73. Declare Function GlobalUnlock Lib "Kernel" (ByVal hMem As Integer) As Integer
  74. 'メモリーのコピー
  75. Declare Sub hmemcpy Lib "Kernel" (lpDest As Any, lpSource As Any, ByVal dwBytes As Long)
  76. 'lpDest:コピー先アドレス lpSource:コピー元アドレス dwBytes:コピーするサイズ
  77.  
  78.