OSFileHandle subclass:#Win32Handle
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
category:'OS-Windows'
!
!Win32Handle primitiveDefinitions!
%{
/*
* sigh - must undef those (from stc.h-definitions);
* they are also defined in windows.h
*/
# undef INT
# undef Array
# undef Number
# undef Method
# undef Point
# undef Rectangle
# undef Block
# undef String
# undef Message
# undef Object
# undef Context
# undef Time
# undef Date
# undef Set
# undef Signal
# undef Delay
# include <windows.h>
/*
* sigh - must redef those as st/x defs;
*/
# ifdef __DEF_Array
# define Array __DEF_Array
# endif
# ifdef __DEF_Number
# define Number __DEF_Number
# endif
# ifdef __DEF_Method
# define Method __DEF_Method
# endif
# ifdef __DEF_Point
# define Point __DEF_Point
# endif
# ifdef __DEF_Block
# define Block __DEF_Block
# endif
# ifdef __DEF_String
# define String __DEF_String
# endif
# ifdef __DEF_Message
# define Message __DEF_Message
# endif
# ifdef __DEF_Object
# define Object __DEF_Object
# endif
# ifdef __DEF_Context
# define Context __DEF_Context
# endif
# ifdef __DEF_Date
# define Date __DEF_Date
# endif
# ifdef __DEF_Time
# define Time __DEF_Time
# endif
# ifdef __DEF_Set
# define Set __DEF_Set
# endif
# ifdef __DEF_Signal
# define Signal __DEF_Signal
# endif
# ifdef __DEF_Delay
# define Delay __DEF_Delay
# endif
# define INT int
%}
! !
!Win32Handle methodsFor:'finalization'!
disposed
"a file handle was garbage collected - close the underlying file"
%{
HANDLE h = (HANDLE)(__externalAddressVal(self));
if (h) {
__externalAddressVal(self) = (HANDLE)0;
CloseHandle(h);
}
%}
! !
!Win32Handle methodsFor:'release'!
close
"close the handle"
%{
HANDLE h = (HANDLE)(__externalAddressVal(self));
if (h) {
__externalAddressVal(self) = (HANDLE)0;
CloseHandle(h);
}
%}.
Lobby unregister:self
! !
!Win32Handle class methodsFor:'documentation'!
version
^ '$Header: /cvs/stx/stx/libbasic/Win32Handle.st,v 1.2 1999-12-17 11:35:56 cg Exp $'
! !