2,727
社区成员
发帖
与我相关
我的任务
分享
? API_GetFile('pdf')
Function API_GetFile(tcExt)
Local cFlt, nOfs, pBuf, cOFN, cFile
Declare Long GetOpenFileName in comdlg32 String
Declare Long CommDlgExtendedError in comdlg32
Declare Long GlobalAlloc in win32api Long, Long
Declare Long GlobalFree in win32api Long
cFlt = tcExt + ' 文件' + Chr(0) + '*.' + tcExt
nOfs = Len(cFlt) + 2
pBuf = GlobalAlloc(0x40, nOfs + 256)
cOFN = Replicate(Chr(0), 8) + BinToC(pBuf, 'rs') + Replicate(Chr(0), 8) ;
+ BinToC(1, 'rs') + BinToC(pBuf + nOfs, 'rs') + BinToC(256, 'rs') ;
+ Replicate(Chr(0), 16) + BinToC(0x181008, 'rs') ;
+ Replicate(Chr(0), 20)
cOFN = BinToC(4+Len(cOFN), 'rs') + cOFN
Sys(2600, pBuf, Len(cFlt), cFlt)
If GetOpenFileName(cOFN) > 0
cFile = Sys(2600, pBuf + nOfs, 256)
cFile = Left(cFile, At(Chr(0), cFile) - 1)
Else
MessageBox('错误码: ' + Transform(CommDlgExtendedError()), 16, '')
cFile = ''
EndIf
GlobalFree(pBuf)
Return cFile
EndFunc