Win32OperatingSystem.st
changeset 16279 1addd0eeec26
parent 15983 294a6922be11
child 16285 d8b8eb36dbed
equal deleted inserted replaced
16278:994fd5ae721e 16279:1addd0eeec26
  7083     |hMe spaceForTargetHandle rslt addr|
  7083     |hMe spaceForTargetHandle rslt addr|
  7084 
  7084 
  7085     spaceForTargetHandle := ExternalLong unprotectedNew.
  7085     spaceForTargetHandle := ExternalLong unprotectedNew.
  7086     hMe := self getCurrentProcess.
  7086     hMe := self getCurrentProcess.
  7087     rslt := self
  7087     rslt := self
  7088 		primDuplicateHandle_hSourcProcessHandle:hMe
  7088                 primDuplicateHandle_hSourcProcessHandle:hMe
  7089 		hSourceHandle:aHandle
  7089                 hSourceHandle:aHandle
  7090 		hTargetProcesshandle:targetProcessHandle
  7090                 hTargetProcesshandle:targetProcessHandle ? hMe
  7091 		lpTargetHandle:spaceForTargetHandle
  7091                 lpTargetHandle:spaceForTargetHandle
  7092 		dwDesiredAccess:0
  7092                 dwDesiredAccess:0
  7093 		bInheritHandle:false
  7093                 bInheritHandle:false
  7094 		dwOptions:2 "DUPLICATE_SAME_ACCESS".
  7094                 dwOptions:2 "DUPLICATE_SAME_ACCESS".
  7095 
  7095 
  7096     rslt ifFalse:[
  7096     rslt ifFalse:[
  7097 	spaceForTargetHandle free.
  7097         spaceForTargetHandle free.
  7098 	self primitiveFailed.
  7098         self primitiveFailed:self primGetLastError.
  7099 	^ nil
  7099         ^ nil
  7100     ].
  7100     ].
  7101 
  7101 
  7102     addr := spaceForTargetHandle value.
  7102     addr := spaceForTargetHandle value.
  7103     spaceForTargetHandle free.
  7103     spaceForTargetHandle free.
  7104     ^ ExternalAddress newAddress:addr.
  7104     ^ ExternalAddress newAddress:addr.
  7296 %}
  7296 %}
  7297 
  7297 
  7298     "
  7298     "
  7299      Win32OperatingSystem hInstance
  7299      Win32OperatingSystem hInstance
  7300     "
  7300     "
       
  7301 !
       
  7302 
       
  7303 isValidHandle:anExternalAddress
       
  7304     |newHandle|
       
  7305 
       
  7306     newHandle := self duplicateHandle:anExternalAddress to:nil.
       
  7307     newHandle isNil ifTrue:[
       
  7308         ^ false.
       
  7309     ].
       
  7310 "/    self closeHandle:newHandle.
       
  7311     ^ true.
  7301 !
  7312 !
  7302 
  7313 
  7303 playSound:fileName
  7314 playSound:fileName
  7304     self playSound:fileName mode:1
  7315     self playSound:fileName mode:1
  7305 
  7316 
 17497 ! !
 17508 ! !
 17498 
 17509 
 17499 !Win32OperatingSystem class methodsFor:'documentation'!
 17510 !Win32OperatingSystem class methodsFor:'documentation'!
 17500 
 17511 
 17501 version
 17512 version
 17502     ^ '$Header: /cvs/stx/stx/libbasic/Win32OperatingSystem.st,v 1.490 2014-02-11 20:18:49 cg Exp $'
 17513     ^ '$Header: /cvs/stx/stx/libbasic/Win32OperatingSystem.st,v 1.491 2014-03-25 13:56:47 stefan Exp $'
 17503 !
 17514 !
 17504 
 17515 
 17505 version_CVS
 17516 version_CVS
 17506     ^ '$Header: /cvs/stx/stx/libbasic/Win32OperatingSystem.st,v 1.490 2014-02-11 20:18:49 cg Exp $'
 17517     ^ '$Header: /cvs/stx/stx/libbasic/Win32OperatingSystem.st,v 1.491 2014-03-25 13:56:47 stefan Exp $'
 17507 !
 17518 !
 17508 
 17519 
 17509 version_SVN
 17520 version_SVN
 17510     ^ '$Id: Win32OperatingSystem.st,v 1.490 2014-02-11 20:18:49 cg Exp $'
 17521     ^ '$Id: Win32OperatingSystem.st,v 1.491 2014-03-25 13:56:47 stefan Exp $'
 17511 
 17522 
 17512 ! !
 17523 ! !
 17513 
 17524 
 17514 
 17525 
 17515 Win32OperatingSystem initialize!
 17526 Win32OperatingSystem initialize!