Win32Handle.st
author Claus Gittinger <cg@exept.de>
Tue, 09 Jul 2019 20:55:17 +0200
changeset 24417 03b083548da2
parent 14644 e5f19ef20dcd
child 18011 deb0c3355881
permissions -rw-r--r--
#REFACTORING by exept class: Smalltalk class changed: #recursiveInstallAutoloadedClassesFrom:rememberIn:maxLevels:noAutoload:packageTop:showSplashInLevels: Transcript showCR:(... bindWith:...) -> Transcript showCR:... with:...
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9107
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
 COPYRIGHT (c) 2004 by eXept Software AG
10340
d6b6b01525f5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9172
diff changeset
     3
	      All Rights Reserved
9107
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
 This software is furnished under a license and may be used
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 hereby transferred.
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
"
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
"{ Package: 'stx:libbasic' }"
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
OSHandle subclass:#Win32Handle
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
	instanceVariableNames:''
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
	classVariableNames:''
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
	poolDictionaries:''
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	category:'OS-Windows'
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
!
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
9110
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    21
!Win32Handle primitiveDefinitions!
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    22
%{
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    23
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    24
#include "stxOSDefs.h"
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    25
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    26
/*
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    27
 * ensure that ST/X runs on NT, 95 and 98
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    28
 * (however, this disables some Win2K and XP features (sigh)
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    29
 */
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    30
#ifndef WINVER
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    31
# define WINVER 0x0400
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    32
#endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    33
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    34
#if WINVER < 0x0400
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    35
# define NO_GETADAPTERSINFO
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    36
#endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    37
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    38
#define WANT_OLE
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    39
#define OLE_DEBUG
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    40
#define COBJMACROS
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    41
#define CINTERFACE
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    42
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    43
#define USE_H_ERRNO
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    44
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    45
# if defined(i386) || defined(__i386__)
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    46
#  ifndef _X86_
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    47
#   define _X86_
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    48
#  endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    49
# endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    50
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    51
/*
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    52
 * notice: although many systems' include files
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    53
 * already block against multiple inclusion, some
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    54
 * do not. Therefore, this is done here again.
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    55
 * (it does not hurt)
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    56
 */
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    57
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    58
# undef INT
14644
e5f19ef20dcd mingw changes
Claus Gittinger <cg@exept.de>
parents: 13743
diff changeset
    59
# undef UINT
9110
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    60
# undef Array
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    61
# undef Number
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    62
# undef Method
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    63
# undef Point
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    64
# undef Rectangle
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    65
# undef Block
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    66
# undef String
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    67
# undef Message
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    68
# undef Object
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    69
# undef Context
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    70
# undef Time
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    71
# undef Date
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    72
# undef Set
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    73
# undef Signal
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    74
# undef Delay
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    75
# undef Message
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    76
# undef Process
10340
d6b6b01525f5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9172
diff changeset
    77
# undef Processor
9110
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    78
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    79
# include <stdarg.h> /* */
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    80
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    81
# ifndef WINDOWS_H_INCLUDED
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    82
#  define WINDOWS_H_INCLUDED
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    83
#  include <windows.h>
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    84
# endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    85
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    86
# ifdef WANT_OLE
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    87
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    88
#if 0
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    89
#  ifndef COMDEF_H_INCLUDED
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    90
#   define COMDEF_H_INCLUDED
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    91
#   include <comdef.h>
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    92
#  endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    93
#endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    94
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    95
#  ifndef OLEAUTO_H_INCLUDED
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    96
#   define OLEAUTO_H_INCLUDED
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    97
#   include <oleauto.h>
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    98
#  endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    99
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   100
# endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   101
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   102
# ifdef __DEF_Array
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   103
#  define Array __DEF_Array
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   104
# endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   105
# ifdef __DEF_Number
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   106
#  define Number __DEF_Number
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   107
# endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   108
# ifdef __DEF_Method
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   109
#  define Method __DEF_Method
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   110
# endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   111
# ifdef __DEF_Point
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   112
#  define Point __DEF_Point
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   113
# endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   114
# ifdef __DEF_Rectangle
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   115
#  define Rectangle __DEF_Rectangle
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   116
# endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   117
# ifdef __DEF_Block
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   118
#  define Block __DEF_Block
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   119
# endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   120
# ifdef __DEF_String
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   121
#  define String __DEF_String
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   122
# endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   123
# ifdef __DEF_Message
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   124
#  define Message __DEF_Message
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   125
# endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   126
# ifdef __DEF_Object
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   127
#  define Object __DEF_Object
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   128
# endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   129
# ifdef __DEF_Context
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   130
#  define Context __DEF_Context
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   131
# endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   132
# ifdef __DEF_Date
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   133
#  define Date __DEF_Date
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   134
# endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   135
# ifdef __DEF_Time
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   136
#  define Time __DEF_Time
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   137
# endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   138
# ifdef __DEF_Set
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   139
#  define Set __DEF_Set
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   140
# endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   141
# ifdef __DEF_Signal
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   142
#  define Signal __DEF_Signal
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   143
# endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   144
# ifdef __DEF_Delay
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   145
#  define Delay __DEF_Delay
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   146
# endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   147
# ifdef __DEF_Message
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   148
#  define Message __DEF_Message
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   149
# endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   150
# ifdef __DEF_Process
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   151
#  define Process __DEF_Process
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   152
# endif
10340
d6b6b01525f5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9172
diff changeset
   153
# ifdef __DEF_Processor
d6b6b01525f5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9172
diff changeset
   154
#  define Processor __DEF_Processor
d6b6b01525f5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9172
diff changeset
   155
# endif
9110
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   156
14644
e5f19ef20dcd mingw changes
Claus Gittinger <cg@exept.de>
parents: 13743
diff changeset
   157
# define INT  STX_INT
e5f19ef20dcd mingw changes
Claus Gittinger <cg@exept.de>
parents: 13743
diff changeset
   158
# define UINT STX_UINT
9110
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   159
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   160
typedef int (*intf)(int);
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   161
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   162
#define _HANDLEVal(o)        (HANDLE)(__externalAddressVal(o))
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   163
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   164
%}
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   165
! !
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   166
9172
55600e1aa6d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9110
diff changeset
   167
!Win32Handle class methodsFor:'documentation'!
55600e1aa6d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9110
diff changeset
   168
55600e1aa6d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9110
diff changeset
   169
copyright
55600e1aa6d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9110
diff changeset
   170
"
55600e1aa6d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9110
diff changeset
   171
 COPYRIGHT (c) 2004 by eXept Software AG
10340
d6b6b01525f5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9172
diff changeset
   172
	      All Rights Reserved
9172
55600e1aa6d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9110
diff changeset
   173
55600e1aa6d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9110
diff changeset
   174
 This software is furnished under a license and may be used
55600e1aa6d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9110
diff changeset
   175
 only in accordance with the terms of that license and with the
55600e1aa6d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9110
diff changeset
   176
 inclusion of the above copyright notice.   This software may not
55600e1aa6d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9110
diff changeset
   177
 be provided or otherwise made available to, or used by, any
55600e1aa6d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9110
diff changeset
   178
 other person.  No title to or ownership of the software is
55600e1aa6d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9110
diff changeset
   179
 hereby transferred.
55600e1aa6d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9110
diff changeset
   180
"
55600e1aa6d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9110
diff changeset
   181
!
55600e1aa6d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9110
diff changeset
   182
55600e1aa6d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9110
diff changeset
   183
documentation
55600e1aa6d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9110
diff changeset
   184
"
55600e1aa6d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9110
diff changeset
   185
    I represent a non-I/O HANDLE.
55600e1aa6d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9110
diff changeset
   186
"
55600e1aa6d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9110
diff changeset
   187
! !
9110
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   188
9107
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
!Win32Handle methodsFor:'release'!
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
9172
55600e1aa6d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9110
diff changeset
   191
close
55600e1aa6d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9110
diff changeset
   192
    "close the handle"
55600e1aa6d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9110
diff changeset
   193
55600e1aa6d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9110
diff changeset
   194
    self closeHandle
55600e1aa6d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9110
diff changeset
   195
!
55600e1aa6d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9110
diff changeset
   196
9107
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
closeHandle
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
    "close the handle"
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
%{
9110
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   201
    HANDLE h = _HANDLEVal(self);
9107
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
    if (h) {
10340
d6b6b01525f5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9172
diff changeset
   204
	__externalAddressVal(self) = (HANDLE)0;
d6b6b01525f5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9172
diff changeset
   205
	CloseHandle(h);
9107
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
    }
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
%}.
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
!
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
finalize
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   211
    "a filedescriptor was garbage collected - close the underlying handle"
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   213
    self closeHandle
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
! !
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   215
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   216
!Win32Handle class methodsFor:'documentation'!
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   217
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   218
version
14644
e5f19ef20dcd mingw changes
Claus Gittinger <cg@exept.de>
parents: 13743
diff changeset
   219
    ^ '$Header: /cvs/stx/stx/libbasic/Win32Handle.st,v 1.9 2013-01-10 11:43:30 cg Exp $'
9107
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   220
! !