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