views:

276

answers:

2

I used the functions CopyFilea and ShFileOperation. CopyFileA it copied the file(large cumbersome data). but it didn't show the Copy Progress and Also tried in SHFileOperation api this shows the error.

PB Version is 10.2.0 build 7516

Error Msg: Error Calling external function %s

any body Please give me a solution?

+2  A: 

There is a discussion of SHFileOperation on sybase.public.powerbuilder.general . This code block shows how to set up the structure correctly, for a delete operation in this case - does it help?

type os_shfileopstruct from structure
        unsignedlong            hwnd
        unsignedlong            wfunc
        blob            pfrom
        blob            pto
        unsignedinteger         fflags
        unsignedlong            banyoperationsaborted
        unsignedlong            hnamemappings
        string          lpszprogresstitle
end type

//inside a function call:
// Arguments:    as_SourceFile - the file(s) to delete.
//               aui_flags     - file operation flags (0 - default)
//               aw_requestor  - the requesting window

os_shfileopstruct       lstr_FileOp
Integer li_rc

lstr_FileOp.hWnd                  = Handle(aw_requestor)
lstr_FileOp.wFunc                 = FO_DELETE
lstr_FileOp.pFrom                 = Blob( as_SourceFile + Space(2) )
BlobEdit( lstr_FileOp.pFrom, Len( as_sourcefile ) + 1, Char(0) )
BlobEdit( lstr_FileOp.pFrom, Len( as_sourcefile ) + 2, Char(0) )
lstr_FileOp.fFlags                = aui_flags
lstr_FileOp.hNameMappings         = 0
lstr_FileOp.lpszProgressTitle     = Space(10)

li_rc = SHFileOperationA( lstr_FileOp )
IF li_rc <> 0 THEN
        IF NOT IsNull( lstr_FileOp ) THEN
                IF lstr_FileOp.bAnyOperationsAborted = 1 THEN
                        RETURN 0
                END IF
        END IF
ELSE
        -1
END IF

RETURN 1

from sybase.public.powerbuilder.general

Colin Pickard
thanks for your reply. But again it shows the same error message
Ambut bhath
A: 

What is your operating system? SHFileOperation has has been replaced in Windows Vista by IFileOperation.

Colin Pickard
Windows XP, Copy Progress its now working fine.Thanks
Ambut bhath