2,748
社区成员




? 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