Win32Handle.st
author Claus Gittinger <cg@exept.de>
Tue, 14 Feb 2006 15:53:19 +0100
changeset 9110 760fff22298b
parent 9107 61894b18644b
child 9172 55600e1aa6d6
permissions -rw-r--r--
*** empty log message ***
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
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
              All Rights Reserved
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
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
"{ Package: 'stx:libbasic' }"
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
OSHandle subclass:#Win32Handle
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
	instanceVariableNames:''
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
	classVariableNames:''
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	poolDictionaries:''
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	category:'OS-Windows'
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
!
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
!Win32Handle class methodsFor:'documentation'!
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
copyright
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
"
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
 COPYRIGHT (c) 2004 by eXept Software AG
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
              All Rights Reserved
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
 This software is furnished under a license and may be used
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
 only in accordance with the terms of that license and with the
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
 inclusion of the above copyright notice.   This software may not
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
 be provided or otherwise made available to, or used by, any
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
 other person.  No title to or ownership of the software is
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
 hereby transferred.
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
"
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
!
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
documentation
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
"
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
    I represent a non-I/O HANDLE.
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
"
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
! !
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
9110
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    44
!Win32Handle primitiveDefinitions!
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    45
%{
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    46
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    47
#include "stxOSDefs.h"
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    48
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    49
/*
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    50
 * ensure that ST/X runs on NT, 95 and 98
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    51
 * (however, this disables some Win2K and XP features (sigh)
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    52
 */
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    53
#ifndef WINVER
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    54
# define WINVER 0x0400
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    55
#endif
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
#if WINVER < 0x0400
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    58
# define NO_GETADAPTERSINFO
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    59
#endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    60
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    61
#define WANT_OLE
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    62
#define OLE_DEBUG
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    63
#define COBJMACROS
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    64
#define CINTERFACE
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    65
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    66
#define USE_H_ERRNO
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    67
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    68
# if defined(i386) || defined(__i386__)
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    69
#  ifndef _X86_
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    70
#   define _X86_
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    71
#  endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    72
# endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    73
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    74
/*
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    75
 * notice: although many systems' include files
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    76
 * already block against multiple inclusion, some
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    77
 * do not. Therefore, this is done here again.
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    78
 * (it does not hurt)
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    79
 */
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
# undef INT
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    82
# undef Array
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    83
# undef Number
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    84
# undef Method
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    85
# undef Point
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    86
# undef Rectangle
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    87
# undef Block
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    88
# undef String
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    89
# undef Message
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    90
# undef Object
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    91
# undef Context
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    92
# undef Time
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    93
# undef Date
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    94
# undef Set
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    95
# undef Signal
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    96
# undef Delay
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    97
# undef Message
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
    98
# undef Process
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
# include <stdarg.h> /* */
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
# ifndef WINDOWS_H_INCLUDED
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   103
#  define WINDOWS_H_INCLUDED
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   104
#  include <windows.h>
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   105
# endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   106
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   107
# ifdef WANT_OLE
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   108
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   109
#if 0
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   110
#  ifndef COMDEF_H_INCLUDED
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   111
#   define COMDEF_H_INCLUDED
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   112
#   include <comdef.h>
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
#endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   115
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   116
#  ifndef OLEAUTO_H_INCLUDED
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   117
#   define OLEAUTO_H_INCLUDED
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   118
#   include <oleauto.h>
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
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   121
# endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   122
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   123
# ifdef __DEF_Array
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   124
#  define Array __DEF_Array
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_Number
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   127
#  define Number __DEF_Number
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_Method
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   130
#  define Method __DEF_Method
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_Point
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   133
#  define Point __DEF_Point
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_Rectangle
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   136
#  define Rectangle __DEF_Rectangle
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_Block
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   139
#  define Block __DEF_Block
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_String
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   142
#  define String __DEF_String
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_Message
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   145
#  define Message __DEF_Message
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_Object
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   148
#  define Object __DEF_Object
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_Context
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   151
#  define Context __DEF_Context
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   152
# endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   153
# ifdef __DEF_Date
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   154
#  define Date __DEF_Date
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   155
# endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   156
# ifdef __DEF_Time
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   157
#  define Time __DEF_Time
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   158
# endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   159
# ifdef __DEF_Set
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   160
#  define Set __DEF_Set
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   161
# endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   162
# ifdef __DEF_Signal
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   163
#  define Signal __DEF_Signal
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   164
# endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   165
# ifdef __DEF_Delay
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   166
#  define Delay __DEF_Delay
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   167
# endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   168
# ifdef __DEF_Message
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   169
#  define Message __DEF_Message
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   170
# endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   171
# ifdef __DEF_Process
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   172
#  define Process __DEF_Process
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   173
# endif
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   174
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   175
# define INT int
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   176
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   177
typedef int (*intf)(int);
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   178
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   179
#define _HANDLEVal(o)        (HANDLE)(__externalAddressVal(o))
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   180
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   181
%}
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   182
! !
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   183
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   184
9107
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
!Win32Handle methodsFor:'release'!
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
closeHandle
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
    "close the handle"
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
%{
9110
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   191
    HANDLE h = _HANDLEVal(self);
9107
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
    if (h) {
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
        __externalAddressVal(self) = (HANDLE)0;
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
        CloseHandle(h);
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
    }
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
%}.
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
!
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
finalize
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
    "a filedescriptor was garbage collected - close the underlying handle"
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
    self closeHandle
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
! !
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
!Win32Handle class methodsFor:'documentation'!
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
version
9110
760fff22298b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9107
diff changeset
   209
    ^ '$Header: /cvs/stx/stx/libbasic/Win32Handle.st,v 1.5 2006-02-14 14:53:19 cg Exp $'
9107
61894b18644b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
! !