Below is a test script that work with the new DLL I working on providing. It will provide a Perl object and provide access to all the methods supported by the object. Well it looks like PostPrep needs to be updated. break on $iRC =SETOPTION ('WrapAtEOL' ,'on' ) $HABObject = createobject ("HBullock.AdminObjects" ) if vartypename ($HABObject1 ) < > "Object" ? "@serror" endif ; ChangeNotify test code ; Valid Filters (string containing any of the following flags separated by whitespace): ; ATTRIBUTES Any attribute change ; DIR_NAME Any directory name change ; FILE_NAME Any file name change (creating/deleting/renaming) ; LAST_WRITE Any change to a file's last write time ; SECURITY Any security descriptor change ; SIZE Any change in a file's size ;$ChangeNotify1 = $HABObject.ChangeNotify ("c:\data\scripts", 1, "FILE_NAME") ;$ChangeNotify2 = $HABObject.ChangeNotify ("c:\data\scripts", 1, "SIZE") ; ; ;$loop = 1 ;while ($loop) ; do ; $i = 1+ $i ; $result1 = $ChangeNotify1.wait(200) ; milliseconds ; $result2 = $ChangeNotify2.wait(200) ; milliseconds ; ? "Timeout: " + $i ; If $i>50 $loop=0 endif ; until $result1 < > 0 or $result2 < > 0 or $i>50 ; ; if $result1 ; ? "FILE_NAME: Something changed" ; $rc = $ChangeNotify1.reset ; ;Do Something about it... ; endif ; if $result2 ; ? "SIZE: Something changed" ; $rc = $ChangeNotify2.reset ; ;Do Something about it... ; endif ;loop $Zip1 = $HABObject.Zip ("C:\Data\Download\BBchecker.zip" ) $num = $Zip1.numberOfMembers ? @serror ? "Num of files in archive: " + $num ? ; Output list of files in the archive ; Note the use of the "List" method to make the array. This is case sensative. $files = $Zip1.List.memberNames $x =1 for each $member in $files ? "" + $x + ": " + $member $x = $x + 1 next ; Get a file from the archive as an object ? $file = "view.kix" $member = $Zip1.memberNamed ( $file ) ? "compressionMethod = " + $member.compressionMethod ? "lastModFileDateTime = " + $member.lastModFileDateTime ? "crc32string = " + $member.crc32String ? "uncompressedSize = " + $member.uncompressedSize ? "compressedSize = " + $member.compressedSize ; Extract file to a specified location. ? $rc = $member.extractToFileNamed ( "C:\Data\Scripts\PerlCtrl\objects\" + $file ) if $rc = 0 ? "Extraction was successful" else ? "Extraction Failed: $rc @serror" endif ? $Zip2 = $HABObject.Zip () $files = "C:\Data\Scripts\PerlCtrl\objects\Zip.html" , "C:\Data\Scripts\PerlCtrl\objects\HABobjects2.DLL" , "C:\data\scripts\[censored].kix" for each $file in $files $member = $Zip2.addFile ( $file ) if $Zip2.writeToFileNamed ( "C:\Data\Scripts\PerlCtrl\objects\Test.zip" ) = 0 ? "Added: " + $file endif next