Hi
First oshp is just a variable name. By convention many programmers start object variables with "O" and indicate the type so oshp or osh simply refers to an object that is a shape while osld would be an object that is a slide.
Try inserting a "normal" shape to hold the picture eg a rectangle and name it eg Pic1 so that it can be identified easily. In 2007 you can do this in the selection pane (in earlier versions you will need code)
Now assuming Pic1 is on slide 1 (make the obvious change if not)
Sub pic1()
ActivePresentation.Slides(1).Shapes("Pic1").Fill.UserPicture "C:\Documents and Settings\John\Desktop\john.jpg"
End Sub
will fill it with the picture (obviously change the address)
and this will kill the picture
Sub pic1Kill()
ActivePresentation.Slides(1).Shapes("Pic1").Fill.Visible = False
End Sub
You will then need to arrange two mousover shapes one to trigger the fill and another around the first to trigger the kill.
Hope that makes sense
Another option would be to fill the shapes manually with the picture and simply make the .visible object true or false. Note that there is a bug which sometimes affects animation if you do this.
eg
Sub pic1Kill()
ActivePresentation.Slides(1).Shapes("Pic1").Visible = False
End Sub
hope that helps