Win32Handle.st
changeset 9110 760fff22298b
parent 9107 61894b18644b
child 9172 55600e1aa6d6
equal deleted inserted replaced
9109:44a192ae522b 9110:760fff22298b
    39 "
    39 "
    40     I represent a non-I/O HANDLE.
    40     I represent a non-I/O HANDLE.
    41 "
    41 "
    42 ! !
    42 ! !
    43 
    43 
       
    44 !Win32Handle primitiveDefinitions!
       
    45 %{
       
    46 
       
    47 #include "stxOSDefs.h"
       
    48 
       
    49 /*
       
    50  * ensure that ST/X runs on NT, 95 and 98
       
    51  * (however, this disables some Win2K and XP features (sigh)
       
    52  */
       
    53 #ifndef WINVER
       
    54 # define WINVER 0x0400
       
    55 #endif
       
    56 
       
    57 #if WINVER < 0x0400
       
    58 # define NO_GETADAPTERSINFO
       
    59 #endif
       
    60 
       
    61 #define WANT_OLE
       
    62 #define OLE_DEBUG
       
    63 #define COBJMACROS
       
    64 #define CINTERFACE
       
    65 
       
    66 #define USE_H_ERRNO
       
    67 
       
    68 # if defined(i386) || defined(__i386__)
       
    69 #  ifndef _X86_
       
    70 #   define _X86_
       
    71 #  endif
       
    72 # endif
       
    73 
       
    74 /*
       
    75  * notice: although many systems' include files
       
    76  * already block against multiple inclusion, some
       
    77  * do not. Therefore, this is done here again.
       
    78  * (it does not hurt)
       
    79  */
       
    80 
       
    81 # undef INT
       
    82 # undef Array
       
    83 # undef Number
       
    84 # undef Method
       
    85 # undef Point
       
    86 # undef Rectangle
       
    87 # undef Block
       
    88 # undef String
       
    89 # undef Message
       
    90 # undef Object
       
    91 # undef Context
       
    92 # undef Time
       
    93 # undef Date
       
    94 # undef Set
       
    95 # undef Signal
       
    96 # undef Delay
       
    97 # undef Message
       
    98 # undef Process
       
    99 
       
   100 # include <stdarg.h> /* */
       
   101 
       
   102 # ifndef WINDOWS_H_INCLUDED
       
   103 #  define WINDOWS_H_INCLUDED
       
   104 #  include <windows.h>
       
   105 # endif
       
   106 
       
   107 # ifdef WANT_OLE
       
   108 
       
   109 #if 0
       
   110 #  ifndef COMDEF_H_INCLUDED
       
   111 #   define COMDEF_H_INCLUDED
       
   112 #   include <comdef.h>
       
   113 #  endif
       
   114 #endif
       
   115 
       
   116 #  ifndef OLEAUTO_H_INCLUDED
       
   117 #   define OLEAUTO_H_INCLUDED
       
   118 #   include <oleauto.h>
       
   119 #  endif
       
   120 
       
   121 # endif
       
   122 
       
   123 # ifdef __DEF_Array
       
   124 #  define Array __DEF_Array
       
   125 # endif
       
   126 # ifdef __DEF_Number
       
   127 #  define Number __DEF_Number
       
   128 # endif
       
   129 # ifdef __DEF_Method
       
   130 #  define Method __DEF_Method
       
   131 # endif
       
   132 # ifdef __DEF_Point
       
   133 #  define Point __DEF_Point
       
   134 # endif
       
   135 # ifdef __DEF_Rectangle
       
   136 #  define Rectangle __DEF_Rectangle
       
   137 # endif
       
   138 # ifdef __DEF_Block
       
   139 #  define Block __DEF_Block
       
   140 # endif
       
   141 # ifdef __DEF_String
       
   142 #  define String __DEF_String
       
   143 # endif
       
   144 # ifdef __DEF_Message
       
   145 #  define Message __DEF_Message
       
   146 # endif
       
   147 # ifdef __DEF_Object
       
   148 #  define Object __DEF_Object
       
   149 # endif
       
   150 # ifdef __DEF_Context
       
   151 #  define Context __DEF_Context
       
   152 # endif
       
   153 # ifdef __DEF_Date
       
   154 #  define Date __DEF_Date
       
   155 # endif
       
   156 # ifdef __DEF_Time
       
   157 #  define Time __DEF_Time
       
   158 # endif
       
   159 # ifdef __DEF_Set
       
   160 #  define Set __DEF_Set
       
   161 # endif
       
   162 # ifdef __DEF_Signal
       
   163 #  define Signal __DEF_Signal
       
   164 # endif
       
   165 # ifdef __DEF_Delay
       
   166 #  define Delay __DEF_Delay
       
   167 # endif
       
   168 # ifdef __DEF_Message
       
   169 #  define Message __DEF_Message
       
   170 # endif
       
   171 # ifdef __DEF_Process
       
   172 #  define Process __DEF_Process
       
   173 # endif
       
   174 
       
   175 # define INT int
       
   176 
       
   177 typedef int (*intf)(int);
       
   178 
       
   179 #define _HANDLEVal(o)        (HANDLE)(__externalAddressVal(o))
       
   180 
       
   181 %}
       
   182 ! !
       
   183 
       
   184 
    44 !Win32Handle methodsFor:'release'!
   185 !Win32Handle methodsFor:'release'!
    45 
   186 
    46 closeHandle
   187 closeHandle
    47     "close the handle"
   188     "close the handle"
    48 
   189 
    49 %{
   190 %{
    50     HANDLE h = (HANDLE)(__externalAddressVal(self));
   191     HANDLE h = _HANDLEVal(self);
    51 
   192 
    52     if (h) {
   193     if (h) {
    53         __externalAddressVal(self) = (HANDLE)0;
   194         __externalAddressVal(self) = (HANDLE)0;
    54         CloseHandle(h);
   195         CloseHandle(h);
    55     }
   196     }
    63 ! !
   204 ! !
    64 
   205 
    65 !Win32Handle class methodsFor:'documentation'!
   206 !Win32Handle class methodsFor:'documentation'!
    66 
   207 
    67 version
   208 version
    68     ^ '$Header: /cvs/stx/stx/libbasic/Win32Handle.st,v 1.4 2006-02-14 14:32:32 cg Exp $'
   209     ^ '$Header: /cvs/stx/stx/libbasic/Win32Handle.st,v 1.5 2006-02-14 14:53:19 cg Exp $'
    69 ! !
   210 ! !