PeekLock and some basic error handling implemented

Our application needed PeekLock support, so I implemented it.  It used a default parameter to choose between the modes, so it shouldn't break any existing applications.  It will default to ReceiveAndDelete if nothing else is specified.

Kevin