Win32Handle.st
author Claus Gittinger <cg@exept.de>
Sun, 03 Sep 2000 17:14:56 +0200
changeset 5582 737d121ae7de
parent 5120 13143fbcbdf8
permissions -rw-r--r--
*** empty log message ***

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 $'
! !