by 矢田裕康 » 2005年10月02日(日) 19:40
お手数を掛けます。DLLを元に戻して、呼び出し側を変更してみましたがうまく行きません。元になるコードは「コードの切れ端」にある hiraさんの[AB4]GIF画像やJPEG画像の描画です。この中の "test.jpg"を「開く」ダイアログで指定できるのではないかと思いました。そこで以下のように追加しました。
'追加
Declare function GetFileDlg Lib "FileDlg"(_PromptSys_hWnd As Long,lpBuf As BytePtr,lpFilter As BytePtr,bOpen As Long) As Long
Dim lpStream As LPSTREAM
Dim lpPicture As LPPICTURE
Dim hGlobal As HGLOBAL,pGlobal As VoidPtr
Dim hFile As HANDLE
Dim dwSize As DWord,dwDummy As DWord
Dim iWidth As Long,iHeight As Long
Dim hDC As HDC
Dim udtHiMetric As SIZE,udtPixel As SIZE
'追加
Dim i As Long
Dim buf As String
Dim FileFilter As String
buf=ZeroString(MAX_PATH)
FileFilter=Ex"Jpeg File(*.JPG,*.JPEG)\0*.jpg\0すべてのイメージ・ファイル(*.*)\0*\0"
i=GetFileDlg(0,StrPtr(buf),StrPtr(FileFilter),1)
If i Then
hFile=CreateFile(buf,GENERIC_READ,0,ByVal NULL,OPEN_EXISTING,0,0)
End If
If hFile<>INVALID_HANDLE_VALUE Then
以下略
i=GetFileDlg(0,StrPtr(buf),StrPtr(FileFilter),1)の 0も変えるのでしょうか?
お手数を掛けます。DLLを元に戻して、呼び出し側を変更してみましたがうまく行きません。元になるコードは「コードの切れ端」にある hiraさんの[AB4]GIF画像やJPEG画像の描画です。この中の "test.jpg"を「開く」ダイアログで指定できるのではないかと思いました。そこで以下のように追加しました。
'追加
Declare function GetFileDlg Lib "FileDlg"(_PromptSys_hWnd As Long,lpBuf As BytePtr,lpFilter As BytePtr,bOpen As Long) As Long
Dim lpStream As LPSTREAM
Dim lpPicture As LPPICTURE
Dim hGlobal As HGLOBAL,pGlobal As VoidPtr
Dim hFile As HANDLE
Dim dwSize As DWord,dwDummy As DWord
Dim iWidth As Long,iHeight As Long
Dim hDC As HDC
Dim udtHiMetric As SIZE,udtPixel As SIZE
'追加
Dim i As Long
Dim buf As String
Dim FileFilter As String
buf=ZeroString(MAX_PATH)
FileFilter=Ex"Jpeg File(*.JPG,*.JPEG)\0*.jpg\0すべてのイメージ・ファイル(*.*)\0*\0"
i=GetFileDlg(0,StrPtr(buf),StrPtr(FileFilter),1)
If i Then
hFile=CreateFile(buf,GENERIC_READ,0,ByVal NULL,OPEN_EXISTING,0,0)
End If
If hFile<>INVALID_HANDLE_VALUE Then
以下略
i=GetFileDlg(0,StrPtr(buf),StrPtr(FileFilter),1)の 0も変えるのでしょうか?