win32-api 1.7.0-universal-mingw32 → 1.9.2-universal-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/CHANGES +21 -0
- data/Dockerfile +99 -0
- data/Dockerfile.trunk +17 -0
- data/MANIFEST +1 -1
- data/{README → README.md} +23 -16
- data/RELEASE.md +41 -0
- data/Rakefile +72 -38
- data/appveyor.yml +33 -48
- data/build-gem.bat +3 -0
- data/ext/win32/api.c +32 -16
- data/lib/win32/api.rb +24 -0
- data/lib/win32/ruby21_32/win32/api.so +0 -0
- data/lib/win32/ruby21_64/win32/api.so +0 -0
- data/lib/win32/ruby22_32/win32/api.so +0 -0
- data/lib/win32/ruby22_64/win32/api.so +0 -0
- data/lib/win32/ruby23_32/win32/api.so +0 -0
- data/lib/win32/ruby23_64/win32/api.so +0 -0
- data/lib/win32/ruby24_32/win32/api.so +0 -0
- data/lib/win32/ruby24_64/win32/api.so +0 -0
- data/lib/win32/ruby25_32/win32/api.so +0 -0
- data/lib/win32/ruby25_64/win32/api.so +0 -0
- data/lib/win32/ruby26_32/win32/api.so +0 -0
- data/lib/win32/ruby26_64/win32/api.so +0 -0
- data/lib/win32/ruby27_32/win32/api.so +0 -0
- data/lib/win32/ruby27_64/win32/api.so +0 -0
- data/lib/win32/ruby2_32/win32/api.so +0 -0
- data/lib/win32/ruby2_64/win32/api.so +0 -0
- data/lib/win32/ruby30_32/win32/api.so +0 -0
- data/lib/win32/ruby30_64/win32/api.so +0 -0
- data/test/test_win32_api.rb +1 -1
- data/win32-api.gemspec +3 -3
- metadata +18 -11
- data/Gemfile.lock +0 -24
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 | 
            -
             | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 2 | 
            +
            SHA256:
         | 
| 3 | 
            +
              metadata.gz: fbda787ddee639f0586e7661d07814ec87374373feb4b0e0be0db1123dcce9cd
         | 
| 4 | 
            +
              data.tar.gz: 34c0c1da9f2d7d7ba24b53fdfbf6b07953769dc7e8d963e803debf0f39fa0d3c
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 982edadad844e9bfbe6f3012f959ca2df820a16bce05d70594c1e45901e54d445afae627613455706a719bc99274efc91c08d4fe11e9649ac136ad299c053e68
         | 
| 7 | 
            +
              data.tar.gz: 5f46486f077ddfda70c4ebebfd5fe2bc060b70fdc7d45a30357f2d4adf1d282eafef4b010967550ffa2dc9cf8dbe6ba23959253fde68302f9a7f5d343f7867aa
         | 
    
        data/CHANGES
    CHANGED
    
    | @@ -1,3 +1,24 @@ | |
| 1 | 
            +
            == 1.9.2 - 13-Sep-2020
         | 
| 2 | 
            +
            * Handle Ruby 3.0 snapshot (formerly known as Ruby 2.8).
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            == 1.9.1 - 14-Jul-2020
         | 
| 5 | 
            +
            * Handle whether tainted support or not.
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            == 1.9.0 - 6-Jan-2020
         | 
| 8 | 
            +
            * Add Ruby 2.8 snapshot support.
         | 
| 9 | 
            +
            * Now includes binaries for Ruby 2.8 both 32 and 64 bit versions.
         | 
| 10 | 
            +
            * Use RubyInstaller 2.7.0-1 for Ruby 2.7 binaries.
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            == 1.8.0 - 6-Jan-2019
         | 
| 13 | 
            +
            * Add Ruby 2.7 snapshot support.
         | 
| 14 | 
            +
            * Now includes binaries for Ruby 2.7 both 32 and 64 bit versions.
         | 
| 15 | 
            +
            * Use RubyInstaller 2.6.0-1 for Ruby 2.6 binaries.
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            == 1.7.1 - 4-Jan-2018
         | 
| 18 | 
            +
            * Add Ruby 2.6 snapshot support.
         | 
| 19 | 
            +
            * Now includes binaries for Ruby 2.6 both 32 and 64 bit versions.
         | 
| 20 | 
            +
            * Use RubyInstaller 2.5.0-1 for Ruby 2.5 binaries.
         | 
| 21 | 
            +
             | 
| 1 22 | 
             
            == 1.7.0 - 28-Nov-2017
         | 
| 2 23 | 
             
            * Add gcc option to fix crash on RubyInstaller2 x86
         | 
| 3 24 |  | 
    
        data/Dockerfile
    ADDED
    
    | @@ -0,0 +1,99 @@ | |
| 1 | 
            +
            FROM mcr.microsoft.com/windows/servercore:1903
         | 
| 2 | 
            +
            LABEL maintainer "Hiroshi Hatake <cosmo0920.wp@gmail.com>"
         | 
| 3 | 
            +
            LABEL Description="win32-api building docker image"
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            # Do not split this into multiple RUN!
         | 
| 6 | 
            +
            # Docker creates a layer for every RUN-Statement
         | 
| 7 | 
            +
            RUN powershell -Command "Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))"
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            # Ruby 2.0.0
         | 
| 10 | 
            +
            RUN powershell \
         | 
| 11 | 
            +
            	[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
         | 
| 12 | 
            +
            	Invoke-WebRequest -OutFile C:\rubyinstaller-2.0.0-p648.exe https://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.0.0-p648.exe
         | 
| 13 | 
            +
            RUN cmd /c "C:\rubyinstaller-2.0.0-p648.exe" /silent /dir=c:\ruby200
         | 
| 14 | 
            +
            RUN powershell \
         | 
| 15 | 
            +
            	[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
         | 
| 16 | 
            +
            	Invoke-WebRequest -OutFile C:\rubyinstaller-2.0.0-p648-x64.exe https://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.0.0-p648-x64.exe
         | 
| 17 | 
            +
            RUN cmd /c "C:\rubyinstaller-2.0.0-p648-x64.exe" /silent /dir=c:\ruby200-x64
         | 
| 18 | 
            +
            # Ruby 2.1
         | 
| 19 | 
            +
            RUN powershell \
         | 
| 20 | 
            +
            	[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
         | 
| 21 | 
            +
            	Invoke-WebRequest -OutFile C:\rubyinstaller-2.1.9.exe https://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.1.9.exe
         | 
| 22 | 
            +
            RUN cmd /c "C:\rubyinstaller-2.1.9.exe" /silent /dir=c:\ruby21
         | 
| 23 | 
            +
            RUN powershell \
         | 
| 24 | 
            +
            	[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
         | 
| 25 | 
            +
            	Invoke-WebRequest -OutFile C:\rubyinstaller-2.1.9-x64.exe https://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.1.9-x64.exe
         | 
| 26 | 
            +
            RUN cmd /c "C:\rubyinstaller-2.1.9-x64.exe" /silent /dir=c:\ruby21-x64
         | 
| 27 | 
            +
            # Ruby 2.2
         | 
| 28 | 
            +
            RUN powershell \
         | 
| 29 | 
            +
            	[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
         | 
| 30 | 
            +
            	Invoke-WebRequest -OutFile C:\rubyinstaller-2.2.6.exe https://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.2.6.exe
         | 
| 31 | 
            +
            RUN cmd /c "C:\rubyinstaller-2.2.6.exe" /silent /dir=c:\ruby22
         | 
| 32 | 
            +
            RUN powershell \
         | 
| 33 | 
            +
            	[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
         | 
| 34 | 
            +
            	Invoke-WebRequest -OutFile C:\rubyinstaller-2.2.6-x64.exe https://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.2.6-x64.exe
         | 
| 35 | 
            +
            RUN cmd /c "C:\rubyinstaller-2.2.6-x64.exe" /silent /dir=c:\ruby22-x64
         | 
| 36 | 
            +
            # Ruby 2.3
         | 
| 37 | 
            +
            RUN powershell \
         | 
| 38 | 
            +
            	[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
         | 
| 39 | 
            +
            	Invoke-WebRequest -OutFile C:\rubyinstaller-2.3.3.exe https://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.3.3.exe
         | 
| 40 | 
            +
            RUN cmd /c "C:\rubyinstaller-2.3.3.exe" /silent /dir=c:\ruby23
         | 
| 41 | 
            +
            RUN powershell \
         | 
| 42 | 
            +
            	[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
         | 
| 43 | 
            +
            	Invoke-WebRequest -OutFile C:\rubyinstaller-2.3.3-x64.exe https://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.3.3-x64.exe
         | 
| 44 | 
            +
            RUN cmd /c "C:\rubyinstaller-2.3.3-x64.exe" /silent /dir=c:\ruby23-x64
         | 
| 45 | 
            +
            # Ruby 2.4
         | 
| 46 | 
            +
            RUN powershell \
         | 
| 47 | 
            +
            	[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
         | 
| 48 | 
            +
            	Invoke-WebRequest -OutFile C:\rubyinstaller-2.4.9-1-x86.exe https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.4.9-1/rubyinstaller-2.4.9-1-x86.exe
         | 
| 49 | 
            +
            RUN cmd /c "C:\rubyinstaller-2.4.9-1-x86.exe" /silent /dir=c:\ruby24
         | 
| 50 | 
            +
            RUN powershell \
         | 
| 51 | 
            +
            	[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
         | 
| 52 | 
            +
            	Invoke-WebRequest -OutFile C:\rubyinstaller-2.4.9-1-x64.exe https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.4.9-1/rubyinstaller-2.4.9-1-x64.exe
         | 
| 53 | 
            +
            RUN cmd /c "C:\rubyinstaller-2.4.9-1-x64.exe" /silent /dir=c:\ruby24-x64
         | 
| 54 | 
            +
            # Ruby 2.5
         | 
| 55 | 
            +
            RUN powershell \
         | 
| 56 | 
            +
            	[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
         | 
| 57 | 
            +
            	Invoke-WebRequest -OutFile C:\rubyinstaller-2.5.7-1-x86.exe https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.5.7-1/rubyinstaller-2.5.7-1-x86.exe
         | 
| 58 | 
            +
            RUN cmd /c "C:\rubyinstaller-2.5.7-1-x86.exe" /silent /dir=c:\ruby25
         | 
| 59 | 
            +
            RUN powershell \
         | 
| 60 | 
            +
            	[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
         | 
| 61 | 
            +
            	Invoke-WebRequest -OutFile C:\rubyinstaller-2.5.7-1-x64.exe https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.5.7-1/rubyinstaller-2.5.7-1-x64.exe
         | 
| 62 | 
            +
            RUN cmd /c "C:\rubyinstaller-2.5.7-1-x64.exe" /silent /dir=c:\ruby25-x64
         | 
| 63 | 
            +
            # Ruby 2.6
         | 
| 64 | 
            +
            RUN powershell \
         | 
| 65 | 
            +
            	[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
         | 
| 66 | 
            +
            	Invoke-WebRequest -OutFile C:\rubyinstaller-2.6.5-1-x86.exe https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.6.5-1/rubyinstaller-2.6.5-1-x86.exe
         | 
| 67 | 
            +
            RUN cmd /c "C:\rubyinstaller-2.6.5-1-x86.exe" /silent /dir=c:\ruby26
         | 
| 68 | 
            +
            RUN powershell \
         | 
| 69 | 
            +
            	[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
         | 
| 70 | 
            +
            	Invoke-WebRequest -OutFile C:\rubyinstaller-2.6.5-1-x64.exe https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.6.5-1/rubyinstaller-2.6.5-1-x64.exe
         | 
| 71 | 
            +
            RUN cmd /c "C:\rubyinstaller-2.6.5-1-x64.exe" /silent /dir=c:\ruby26-x64
         | 
| 72 | 
            +
             | 
| 73 | 
            +
            # Ruby 2.7
         | 
| 74 | 
            +
            RUN powershell \
         | 
| 75 | 
            +
            	[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
         | 
| 76 | 
            +
            	Invoke-WebRequest -OutFile C:\rubyinstaller-2.7.0-1-x86.exe https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.7.0-1/rubyinstaller-2.7.0-1-x86.exe
         | 
| 77 | 
            +
            RUN cmd /c "C:\rubyinstaller-2.7.0-1-x86.exe" /silent /dir=c:\ruby27
         | 
| 78 | 
            +
            RUN powershell \
         | 
| 79 | 
            +
            	[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
         | 
| 80 | 
            +
            	Invoke-WebRequest -OutFile C:\rubyinstaller-2.7.0-1-x64.exe https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.7.0-1/rubyinstaller-2.7.0-1-x64.exe
         | 
| 81 | 
            +
            RUN cmd /c "C:\rubyinstaller-2.7.0-1-x64.exe" /silent /dir=c:\ruby27-x64
         | 
| 82 | 
            +
             | 
| 83 | 
            +
            # DevKit
         | 
| 84 | 
            +
            RUN powershell \
         | 
| 85 | 
            +
            	[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
         | 
| 86 | 
            +
            	Invoke-WebRequest -OutFile C:\DevKit-mingw64-32-4.7.2-20130224-1151-sfx.exe https://dl.bintray.com/oneclick/rubyinstaller/DevKit-mingw64-32-4.7.2-20130224-1151-sfx.exe
         | 
| 87 | 
            +
            RUN cmd /c C:\DevKit-mingw64-32-4.7.2-20130224-1151-sfx.exe -o"c:\DevKit" -y
         | 
| 88 | 
            +
            RUN powershell \
         | 
| 89 | 
            +
            	[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
         | 
| 90 | 
            +
            	Invoke-WebRequest -OutFile C:\DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe https://dl.bintray.com/oneclick/rubyinstaller/DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe
         | 
| 91 | 
            +
            RUN cmd /c C:\DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe -o"c:\DevKit64" -y
         | 
| 92 | 
            +
             | 
| 93 | 
            +
            RUN choco install -y git \
         | 
| 94 | 
            +
                && choco install -y msys2 --params "'/NoPath /NoUpdate /InstallDir:C:\msys64'"
         | 
| 95 | 
            +
            RUN refreshenv \
         | 
| 96 | 
            +
                && C:\ruby27\bin\ridk install 2 3 \
         | 
| 97 | 
            +
                && C:\ruby27-x64\bin\ridk install 2 3
         | 
| 98 | 
            +
             | 
| 99 | 
            +
            ENTRYPOINT ["cmd"]
         | 
    
        data/Dockerfile.trunk
    ADDED
    
    | @@ -0,0 +1,17 @@ | |
| 1 | 
            +
            FROM cosmo0920/win32-api:latest
         | 
| 2 | 
            +
            LABEL maintainer "Hiroshi Hatake <cosmo0920.wp@gmail.com>"
         | 
| 3 | 
            +
            LABEL Description="win32-api building docker image"
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            # Ruby 3.0
         | 
| 6 | 
            +
            RUN powershell \
         | 
| 7 | 
            +
            	[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
         | 
| 8 | 
            +
            	Invoke-WebRequest -OutFile C:\rubyinstaller-head-x86-20200911.exe https://ci.appveyor.com/api/buildjobs/trvw8cisuqismasc/artifacts/packages%2Fri%2Frecipes%2Finstaller-inno%2Frubyinstaller-head-x86.exe
         | 
| 9 | 
            +
            RUN cmd /c "C:\rubyinstaller-head-x86-20200911.exe" /silent /dir=c:\ruby30
         | 
| 10 | 
            +
            RUN powershell \
         | 
| 11 | 
            +
            	[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
         | 
| 12 | 
            +
            	Invoke-WebRequest -OutFile C:\rubyinstaller-head-x64-20200911.exe https://ci.appveyor.com/api/buildjobs/ufndgf49pysdvpt9/artifacts/packages%2Fri%2Frecipes%2Finstaller-inno%2Frubyinstaller-head-x64.exe
         | 
| 13 | 
            +
            RUN cmd /c "C:\rubyinstaller-head-x64-20200911.exe" /silent /dir=c:\ruby30-x64
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            RUN mkdir C:\pkg
         | 
| 16 | 
            +
            COPY build-gem.bat C:\\build-gem.bat
         | 
| 17 | 
            +
            ENTRYPOINT ["cmd"]
         | 
    
        data/MANIFEST
    CHANGED
    
    
    
        data/{README → README.md}
    RENAMED
    
    | @@ -1,8 +1,10 @@ | |
| 1 | 
            -
             | 
| 1 | 
            +
            # Description
         | 
| 2 2 | 
             
              This is a drop-in replacement for the Win32API library currently part of
         | 
| 3 3 | 
             
              Ruby's standard library.
         | 
| 4 4 |  | 
| 5 | 
            -
             | 
| 5 | 
            +
            # Synopsis
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            ```ruby
         | 
| 6 8 | 
             
              require 'win32/api'
         | 
| 7 9 | 
             
              include Win32
         | 
| 8 10 |  | 
| @@ -35,8 +37,9 @@ | |
| 35 37 | 
             
              addr = GetProcAddress.call(hlib, 'MessageBeep')
         | 
| 36 38 | 
             
              func = Win32::API::Function.new(addr, 'L', 'L')
         | 
| 37 39 | 
             
              func.call(0)
         | 
| 40 | 
            +
            ```
         | 
| 38 41 |  | 
| 39 | 
            -
             | 
| 42 | 
            +
            # Differences between win32-api and Win32API
         | 
| 40 43 | 
             
              * This library has callback support
         | 
| 41 44 | 
             
              * This library supports raw function pointers.
         | 
| 42 45 | 
             
              * This library supports a separate string type for const char* (S).
         | 
| @@ -48,9 +51,9 @@ | |
| 48 51 | 
             
              * Removed the support for lower case prototype and return types. Always
         | 
| 49 52 | 
             
                use capital letters.
         | 
| 50 53 |  | 
| 51 | 
            -
             | 
| 52 | 
            -
               | 
| 53 | 
            -
              motivation at the time the project was originally created | 
| 54 | 
            +
            # Developer's Notes
         | 
| 55 | 
            +
              NOTE: **Some of the information below is now out of date, but explains my
         | 
| 56 | 
            +
              motivation at the time the project was originally created.**
         | 
| 54 57 |  | 
| 55 58 | 
             
              The current Win32API library that ships with the standard library has been
         | 
| 56 59 | 
             
              slated for removal from Ruby 2.0 and it will not receive any updates in the
         | 
| @@ -76,7 +79,7 @@ | |
| 76 79 | 
             
              Most importantly, we can now add, modify and fix any features that we feel
         | 
| 77 80 | 
             
              best benefit our end users.
         | 
| 78 81 |  | 
| 79 | 
            -
             | 
| 82 | 
            +
            # Multiple Binaries
         | 
| 80 83 | 
             
              As of win32-api 1.4.8 a binary gem is shipped that contains binaries for
         | 
| 81 84 | 
             
              both Ruby 1.8, Ruby 1.9, and 2.x. For Ruby 2.x, both 32 and 64 bit binaries
         | 
| 82 85 | 
             
              are included as of release 1.5.0.
         | 
| @@ -84,29 +87,29 @@ | |
| 84 87 | 
             
              The file under lib/win32 dynamically requires the correct binary based on
         | 
| 85 88 | 
             
              your version of Ruby.
         | 
| 86 89 |  | 
| 87 | 
            -
             | 
| 90 | 
            +
            # Documentation
         | 
| 88 91 | 
             
              The source file contains inline RDoc documentation. If you installed
         | 
| 89 92 | 
             
              this file as a gem, then you have the docs. Run "gem server" and point
         | 
| 90 93 | 
             
              your browser at http://localhost:8808 to see them.
         | 
| 91 94 |  | 
| 92 | 
            -
             | 
| 95 | 
            +
            # Warranty
         | 
| 93 96 | 
             
              This package is provided "as is" and without any express or
         | 
| 94 97 | 
             
              implied warranties, including, without limitation, the implied
         | 
| 95 98 | 
             
              warranties of merchantability and fitness for a particular purpose.
         | 
| 96 99 |  | 
| 97 | 
            -
             | 
| 100 | 
            +
            # Known Issues
         | 
| 98 101 | 
             
              Possible callback issues when dealing with multi-threaded applications.
         | 
| 99 102 |  | 
| 100 103 | 
             
              Please submit any bug reports to the project page at
         | 
| 101 104 | 
             
              https://github.com/cosmo0920/win32-api
         | 
| 102 105 |  | 
| 103 | 
            -
             | 
| 106 | 
            +
            ## Contributions
         | 
| 104 107 | 
             
              Although this library is free, please consider having your company
         | 
| 105 108 | 
             
              setup a gittip if used by your company professionally.
         | 
| 106 109 |  | 
| 107 110 | 
             
              http://www.gittip.com/djberg96/
         | 
| 108 111 |  | 
| 109 | 
            -
             | 
| 112 | 
            +
            # Future Plans
         | 
| 110 113 | 
             
              I really don't have future plans for this library since you should use FFI
         | 
| 111 114 | 
             
              as your preferred C interface going forward. All of my own projects have
         | 
| 112 115 | 
             
              since been converted to either use FFI or an analogous OLE interface.
         | 
| @@ -115,15 +118,19 @@ | |
| 115 118 | 
             
              there who are still using it, but I strongly encourage you to convert
         | 
| 116 119 | 
             
              your projects to FFI when possible.
         | 
| 117 120 |  | 
| 118 | 
            -
             | 
| 121 | 
            +
            # Copyright
         | 
| 119 122 | 
             
              (C) 2003-2015 Daniel J. Berger
         | 
| 120 | 
            -
             | 
| 123 | 
            +
             | 
| 124 | 
            +
              (C) 2016-2020 Hiroshi Hatake
         | 
| 125 | 
            +
             | 
| 121 126 | 
             
              All Rights Reserved
         | 
| 122 127 |  | 
| 123 | 
            -
             | 
| 128 | 
            +
            # License
         | 
| 124 129 | 
             
              Artistic 2.0
         | 
| 125 130 |  | 
| 126 | 
            -
             | 
| 131 | 
            +
            # Authors
         | 
| 127 132 | 
             
              Daniel J. Berger
         | 
| 133 | 
            +
             | 
| 128 134 | 
             
              Park Heesob
         | 
| 135 | 
            +
             | 
| 129 136 | 
             
              Hiroshi Hatake
         | 
    
        data/RELEASE.md
    ADDED
    
    | @@ -0,0 +1,41 @@ | |
| 1 | 
            +
            ## Prerequisites
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            * Docker for Windows
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            ### Release step
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            #### Fat GEM
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            Check the latest ruby-head-YYYYmmDD image:
         | 
| 10 | 
            +
            https://hub.docker.com/r/cosmo0920/win32-api/tags?page=1&name=ruby-head
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            ```powershell
         | 
| 13 | 
            +
            PS> mkdir pkg
         | 
| 14 | 
            +
            PS> docker run -it -v $PWD\pkg:C:\pkg cosmo0920/win32-api:ruby-head-AWESOMEDATE
         | 
| 15 | 
            +
            ```
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            Build universal gem:
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            ```cmd
         | 
| 20 | 
            +
            > .\build-gem.bat
         | 
| 21 | 
            +
            ```
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            Copy built universal gem into mounted directory:
         | 
| 24 | 
            +
             | 
| 25 | 
            +
            ```cmd
         | 
| 26 | 
            +
            > copy C:\win32-api\win32-api-*.gem C:\pkg
         | 
| 27 | 
            +
            ```
         | 
| 28 | 
            +
             | 
| 29 | 
            +
            Then, exit and push built gem:
         | 
| 30 | 
            +
             | 
| 31 | 
            +
            ```cmd
         | 
| 32 | 
            +
            > exit
         | 
| 33 | 
            +
            > gem push win32-api-*.gem
         | 
| 34 | 
            +
            ```
         | 
| 35 | 
            +
             | 
| 36 | 
            +
            #### Non Fat GEM
         | 
| 37 | 
            +
             | 
| 38 | 
            +
            ```cmd
         | 
| 39 | 
            +
            > rake gem:create
         | 
| 40 | 
            +
            > gem push win32-api-*.gem
         | 
| 41 | 
            +
            ```
         | 
    
        data/Rakefile
    CHANGED
    
    | @@ -59,63 +59,73 @@ namespace 'gem' do | |
| 59 59 | 
             
              end
         | 
| 60 60 |  | 
| 61 61 | 
             
              desc 'Build a binary gem'
         | 
| 62 | 
            -
              task :binary, :ruby2_32, :ruby2_64, :ruby21, :ruby21_64, :ruby22, :ruby22_64, :ruby23_32, :ruby23_64, :ruby24_32, :ruby24_64 do |task, args|
         | 
| 62 | 
            +
              task :binary, :ruby2_32, :ruby2_64, :ruby21, :ruby21_64, :ruby22, :ruby22_64, :ruby23_32, :ruby23_64, :ruby24_32, :ruby24_64, :ruby25_32, :ruby25_64, :ruby_26_32, :ruby26_64, :ruby27_32, :ruby27_64, :ruby30_32, :ruby30_64 do |task, args|
         | 
| 63 63 | 
             
                # These are just what's on my system at the moment. Adjust as needed.
         | 
| 64 | 
            +
                # ri refers to RubyInstaller, ruby 2.3 and prev were built with RubyInstaller (:ri),
         | 
| 65 | 
            +
                # 2.4 and later with RubyInstaller2 (:ri2)
         | 
| 66 | 
            +
                # pre variable allows local builds with ruby & DevKit not at drive root
         | 
| 67 | 
            +
             | 
| 68 | 
            +
                dk_path = {}
         | 
| 69 | 
            +
                if ENV['APPVEYOR'] =~ /true/i
         | 
| 70 | 
            +
                  pre = "C:"
         | 
| 71 | 
            +
                  dk_path[:ri]    = "C:/ruby23/DevKit/bin;C:/ruby23/DevKit/mingw/bin"
         | 
| 72 | 
            +
                  dk_path[:ri_64] = "C:/ruby23-x64/DevKit/bin;C:/ruby23-x64/DevKit/mingw/bin"
         | 
| 73 | 
            +
                else
         | 
| 74 | 
            +
                  ENV['BASEPATH'] = ENV['PATH'].gsub(/\\/, '/')
         | 
| 75 | 
            +
                  pre = "C:"
         | 
| 76 | 
            +
                  dk_path[:ri]    = "#{pre}/Devkit/bin;#{pre}/Devkit/mingw/bin"
         | 
| 77 | 
            +
                  dk_path[:ri_64] = "#{pre}/Devkit64/bin;#{pre}/Devkit64/mingw/bin"
         | 
| 78 | 
            +
                end
         | 
| 79 | 
            +
                # at present, Appveyor & local DevKit paths match for ri2
         | 
| 80 | 
            +
                dk_path[:ri2]    = "C:/msys64/usr/bin;C:/msys64/mingw32/bin"
         | 
| 81 | 
            +
                dk_path[:ri2_64] = "C:/msys64/usr/bin;C:/msys64/mingw64/bin"
         | 
| 82 | 
            +
             | 
| 64 83 | 
             
                args.with_defaults(
         | 
| 65 84 | 
             
                  {
         | 
| 66 | 
            -
                    :ruby2_32  => {:path => " | 
| 67 | 
            -
                    :ruby2_64  => {:path => " | 
| 68 | 
            -
                    :ruby21_32 => {:path => " | 
| 69 | 
            -
                    :ruby21_64 => {:path => " | 
| 70 | 
            -
                    :ruby22_32 => {:path => " | 
| 71 | 
            -
                    :ruby22_64 => {:path => " | 
| 72 | 
            -
                    :ruby23_32 => {:path => " | 
| 73 | 
            -
                    :ruby23_64 => {:path => " | 
| 74 | 
            -
                    :ruby24_32 => {:path => " | 
| 75 | 
            -
                    :ruby24_64 => {:path => " | 
| 76 | 
            -
                    :ruby25_32 => {:path => " | 
| 77 | 
            -
                    :ruby25_64 => {:path => " | 
| 85 | 
            +
                    :ruby2_32  => {:path => "#{pre}/ruby200/bin",     :ri => :ri,     :omit => false},
         | 
| 86 | 
            +
                    :ruby2_64  => {:path => "#{pre}/ruby200-x64/bin", :ri => :ri_64,  :omit => false},
         | 
| 87 | 
            +
                    :ruby21_32 => {:path => "#{pre}/ruby21/bin",      :ri => :ri,     :omit => false},
         | 
| 88 | 
            +
                    :ruby21_64 => {:path => "#{pre}/ruby21-x64/bin",  :ri => :ri_64,  :omit => false},
         | 
| 89 | 
            +
                    :ruby22_32 => {:path => "#{pre}/ruby22/bin",      :ri => :ri,     :omit => false},
         | 
| 90 | 
            +
                    :ruby22_64 => {:path => "#{pre}/ruby22-x64/bin",  :ri => :ri_64,  :omit => false},
         | 
| 91 | 
            +
                    :ruby23_32 => {:path => "#{pre}/ruby23/bin",      :ri => :ri,     :omit => false},
         | 
| 92 | 
            +
                    :ruby23_64 => {:path => "#{pre}/ruby23-x64/bin",  :ri => :ri_64,  :omit => false},
         | 
| 93 | 
            +
                    :ruby24_32 => {:path => "#{pre}/ruby24/bin",      :ri => :ri2,    :omit => false},
         | 
| 94 | 
            +
                    :ruby24_64 => {:path => "#{pre}/ruby24-x64/bin",  :ri => :ri2_64, :omit => false},
         | 
| 95 | 
            +
                    :ruby25_32 => {:path => "#{pre}/ruby25/bin",      :ri => :ri2,    :omit => false},
         | 
| 96 | 
            +
                    :ruby25_64 => {:path => "#{pre}/ruby25-x64/bin",  :ri => :ri2_64, :omit => false},
         | 
| 97 | 
            +
                    :ruby26_32 => {:path => "#{pre}/ruby26/bin",      :ri => :ri2,    :omit => false},
         | 
| 98 | 
            +
                    :ruby26_64 => {:path => "#{pre}/ruby26-x64/bin",  :ri => :ri2_64, :omit => false},
         | 
| 99 | 
            +
                    :ruby27_32 => {:path => "#{pre}/ruby27/bin",      :ri => :ri2,    :omit => true},
         | 
| 100 | 
            +
                    :ruby27_64 => {:path => "#{pre}/ruby27-x64/bin",  :ri => :ri2_64, :omit => true},
         | 
| 101 | 
            +
                    :ruby30_32 => {:path => "#{pre}/ruby30/bin",      :ri => :ri2,    :omit => true},
         | 
| 102 | 
            +
                    :ruby30_64 => {:path => "#{pre}/ruby30-x64/bin",  :ri => :ri2_64, :omit => true},
         | 
| 78 103 | 
             
                  }
         | 
| 79 104 | 
             
                )
         | 
| 80 105 |  | 
| 81 106 | 
             
                Rake::Task[:clobber].invoke
         | 
| 82 107 |  | 
| 83 | 
            -
                 | 
| 84 | 
            -
                  default_path = ENV['PATH']
         | 
| 85 | 
            -
             | 
| 86 | 
            -
                  spec = eval(IO.read('win32-api.gemspec'))
         | 
| 108 | 
            +
                default_path = ENV['PATH']
         | 
| 87 109 |  | 
| 88 | 
            -
             | 
| 89 | 
            -
             | 
| 110 | 
            +
                args.each { |key|
         | 
| 111 | 
            +
                  # These lines are used for trunk build.
         | 
| 112 | 
            +
                  if key.last[:omit] && !File.exist?("#{key.last[:path]}/ruby.exe")
         | 
| 113 | 
            +
                    puts "#{key.last[:path]}/ruby does not exist! Skip."
         | 
| 90 114 | 
             
                    next
         | 
| 91 115 | 
             
                  end
         | 
| 92 116 |  | 
| 93 | 
            -
                   | 
| 94 | 
            -
                    # Adjust devkit paths as needed.
         | 
| 95 | 
            -
                    if `"#{key.last[:path]}" -v` =~ /x64/i
         | 
| 96 | 
            -
                      ENV['PATH'] = "C:/Devkit64/bin;C:/Devkit64/mingw/bin;" + ENV['PATH']
         | 
| 97 | 
            -
                    else
         | 
| 98 | 
            -
                      ENV['PATH'] = "C:/Devkit/bin;C:/Devkit/mingw/bin;" + ENV['PATH']
         | 
| 99 | 
            -
                    end
         | 
| 100 | 
            -
                  elsif key.last[:msys] == :msys2
         | 
| 101 | 
            -
                    ENV.delete('RI_DEVKIT')
         | 
| 102 | 
            -
                    # Adjust devkit paths as needed.
         | 
| 103 | 
            -
                    if `"#{key.last[:path]}" -v` =~ /x64/i
         | 
| 104 | 
            -
                      ENV['PATH'] = "C:/msys64/usr/bin;C:/msys64/mingw64/bin;" + ENV['PATH']
         | 
| 105 | 
            -
                    else
         | 
| 106 | 
            -
                      ENV['PATH'] = "C:/msys64/usr/bin;C:/msys64/mingw32/bin;" + ENV['PATH']
         | 
| 107 | 
            -
                    end
         | 
| 108 | 
            -
                  end
         | 
| 117 | 
            +
                  bld_path = "#{key.last[:path]};#{dk_path[key.last[:ri]]};#{ENV['BASEPATH']}"
         | 
| 109 118 | 
             
                  mkdir_p "lib/win32/#{key.first}/win32"
         | 
| 110 119 |  | 
| 111 120 | 
             
                  Dir.chdir('ext') do
         | 
| 121 | 
            +
                    ENV['PATH'] = bld_path
         | 
| 112 122 | 
             
                    sh "make distclean" rescue nil
         | 
| 113 | 
            -
                    sh " | 
| 123 | 
            +
                    sh "ruby extconf.rb"
         | 
| 114 124 | 
             
                    sh "make"
         | 
| 125 | 
            +
                    sh "strip --strip-unneeded -p api.so"
         | 
| 126 | 
            +
                    ENV['PATH'] = default_path
         | 
| 115 127 | 
             
                    cp 'api.so', "../lib/win32/#{key.first}/win32/api.so"
         | 
| 116 128 | 
             
                  end
         | 
| 117 | 
            -
             | 
| 118 | 
            -
                  ENV['PATH'] = default_path
         | 
| 119 129 | 
             
                }
         | 
| 120 130 |  | 
| 121 131 | 
             
            text = <<HERE
         | 
| @@ -171,6 +181,30 @@ begin | |
| 171 181 | 
             
                  end
         | 
| 172 182 | 
             
                end
         | 
| 173 183 |  | 
| 184 | 
            +
                if RbConfig::CONFIG['MINOR'] == '6'
         | 
| 185 | 
            +
                  if RbConfig::CONFIG['arch'] =~ /x64/i
         | 
| 186 | 
            +
                    require File.join(File.dirname(__FILE__), 'ruby26_64/win32/api')
         | 
| 187 | 
            +
                  else
         | 
| 188 | 
            +
                    require File.join(File.dirname(__FILE__), 'ruby26_32/win32/api')
         | 
| 189 | 
            +
                  end
         | 
| 190 | 
            +
                end
         | 
| 191 | 
            +
             | 
| 192 | 
            +
                if RbConfig::CONFIG['MINOR'] == '7'
         | 
| 193 | 
            +
                  if RbConfig::CONFIG['arch'] =~ /x64/i
         | 
| 194 | 
            +
                    require File.join(File.dirname(__FILE__), 'ruby27_64/win32/api')
         | 
| 195 | 
            +
                  else
         | 
| 196 | 
            +
                    require File.join(File.dirname(__FILE__), 'ruby27_32/win32/api')
         | 
| 197 | 
            +
                  end
         | 
| 198 | 
            +
                end
         | 
| 199 | 
            +
              when '3'
         | 
| 200 | 
            +
                if RbConfig::CONFIG['MINOR'] == '0'
         | 
| 201 | 
            +
                  if RbConfig::CONFIG['arch'] =~ /x64/i
         | 
| 202 | 
            +
                    require File.join(File.dirname(__FILE__), 'ruby30_64/win32/api')
         | 
| 203 | 
            +
                  else
         | 
| 204 | 
            +
                    require File.join(File.dirname(__FILE__), 'ruby30_32/win32/api')
         | 
| 205 | 
            +
                  end
         | 
| 206 | 
            +
                end
         | 
| 207 | 
            +
             | 
| 174 208 | 
             
              end
         | 
| 175 209 | 
             
            rescue LoadError
         | 
| 176 210 | 
             
              require File.join(File.dirname(__FILE__), '../../ext/api')
         | 
    
        data/appveyor.yml
    CHANGED
    
    | @@ -1,61 +1,46 @@ | |
| 1 1 | 
             
            version: '{build}'
         | 
| 2 2 |  | 
| 3 | 
            +
            init:
         | 
| 4 | 
            +
              # use a minimal path
         | 
| 5 | 
            +
              - set PATH=C:\ruby%ruby_version%\bin;C:\Program Files\7-Zip;C:\Program Files\AppVeyor\BuildAgent;C:\Program Files\Git\cmd;C:\Windows\system32
         | 
| 6 | 
            +
              # Load ruby trunk build
         | 
| 7 | 
            +
              - if %ruby_version%==_trunk (
         | 
| 8 | 
            +
                  appveyor DownloadFile https://ci.appveyor.com/api/projects/MSP-Greg/ruby-loco/artifacts/ruby_trunk.7z -FileName C:\ruby_trunk.7z &
         | 
| 9 | 
            +
                  7z x C:\ruby_trunk.7z -oC:\ruby_trunk
         | 
| 10 | 
            +
                )
         | 
| 11 | 
            +
             | 
| 3 12 | 
             
            platform: x64
         | 
| 4 13 |  | 
| 5 14 | 
             
            install:
         | 
| 6 | 
            -
              - SET PATH=C:\Ruby%ruby_version%\bin;%PATH%
         | 
| 7 | 
            -
              - "%devkit64%\\devkitvars.bat"
         | 
| 8 | 
            -
              - "%devkit32%\\devkitvars.bat"
         | 
| 9 15 | 
             
              - ruby --version
         | 
| 10 16 | 
             
              - gem --version
         | 
| 11 | 
            -
               | 
| 12 | 
            -
              - IF %msys2%==1 gem install bundler --force
         | 
| 17 | 
            +
              # Assume we can use the version of bundler that Appveyor has packaged with each ruby version
         | 
| 13 18 | 
             
              - bundle install
         | 
| 19 | 
            +
             | 
| 14 20 | 
             
            build: off
         | 
| 21 | 
            +
             | 
| 15 22 | 
             
            test_script:
         | 
| 16 | 
            -
              -  | 
| 17 | 
            -
              -  | 
| 18 | 
            -
              - IF %msys2%==1 ridk.cmd exec bundle exec rake test:all
         | 
| 23 | 
            +
              - rake gem:binary
         | 
| 24 | 
            +
              - rake -rdevkit test:all
         | 
| 19 25 |  | 
| 20 26 | 
             
            environment:
         | 
| 21 27 | 
             
              matrix:
         | 
| 22 | 
            -
                - ruby_version:  | 
| 23 | 
            -
             | 
| 24 | 
            -
             | 
| 25 | 
            -
             | 
| 26 | 
            -
                - ruby_version:  | 
| 27 | 
            -
             | 
| 28 | 
            -
             | 
| 29 | 
            -
             | 
| 30 | 
            -
                - ruby_version:  | 
| 31 | 
            -
             | 
| 32 | 
            -
             | 
| 33 | 
            -
             | 
| 34 | 
            -
                - ruby_version:  | 
| 35 | 
            -
             | 
| 36 | 
            -
             | 
| 37 | 
            -
             | 
| 38 | 
            -
             | 
| 39 | 
            -
             | 
| 40 | 
            -
             | 
| 41 | 
            -
                  msys2: 0
         | 
| 42 | 
            -
                - ruby_version: "22"
         | 
| 43 | 
            -
                  devkit64: C:\Ruby23-x64\DevKit
         | 
| 44 | 
            -
                  devkit32: C:\Ruby23\DevKit
         | 
| 45 | 
            -
                  msys2: 0
         | 
| 46 | 
            -
                - ruby_version: "21-x64"
         | 
| 47 | 
            -
                  devkit64: C:\Ruby23-x64\DevKit
         | 
| 48 | 
            -
                  devkit32: C:\Ruby23\DevKit
         | 
| 49 | 
            -
                  msys2: 0
         | 
| 50 | 
            -
                - ruby_version: "21"
         | 
| 51 | 
            -
                  devkit64: C:\Ruby23-x64\DevKit
         | 
| 52 | 
            -
                  devkit32: C:\Ruby23\DevKit
         | 
| 53 | 
            -
                  msys2: 0
         | 
| 54 | 
            -
                - ruby_version: "200-x64"
         | 
| 55 | 
            -
                  devkit64: C:\Ruby23-x64\DevKit
         | 
| 56 | 
            -
                  devkit32: C:\Ruby23\DevKit
         | 
| 57 | 
            -
                  msys2: 0
         | 
| 58 | 
            -
                - ruby_version: "200"
         | 
| 59 | 
            -
                  devkit64: C:\Ruby23-x64\DevKit
         | 
| 60 | 
            -
                  devkit32: C:\Ruby23\DevKit
         | 
| 61 | 
            -
                  msys2: 0
         | 
| 28 | 
            +
                - ruby_version: _trunk
         | 
| 29 | 
            +
                - ruby_version: 26-x64
         | 
| 30 | 
            +
                - ruby_version: 26
         | 
| 31 | 
            +
                - ruby_version: 25-x64
         | 
| 32 | 
            +
                - ruby_version: 25
         | 
| 33 | 
            +
                - ruby_version: 24-x64
         | 
| 34 | 
            +
                - ruby_version: 24
         | 
| 35 | 
            +
                - ruby_version: 23-x64
         | 
| 36 | 
            +
                - ruby_version: 23
         | 
| 37 | 
            +
                - ruby_version: 22-x64
         | 
| 38 | 
            +
                - ruby_version: 22
         | 
| 39 | 
            +
                - ruby_version: 21-x64
         | 
| 40 | 
            +
                - ruby_version: 21
         | 
| 41 | 
            +
                - ruby_version: 200-x64
         | 
| 42 | 
            +
                - ruby_version: 200
         | 
| 43 | 
            +
             | 
| 44 | 
            +
            matrix:
         | 
| 45 | 
            +
              allow_failures:
         | 
| 46 | 
            +
                - ruby_version: _trunk
         | 
    
        data/build-gem.bat
    ADDED
    
    
    
        data/ext/win32/api.c
    CHANGED
    
    | @@ -16,28 +16,34 @@ | |
| 16 16 | 
             
            #define RARRAY_LEN(a) (RARRAY(a)->len)
         | 
| 17 17 | 
             
            #endif
         | 
| 18 18 |  | 
| 19 | 
            -
             | 
| 20 | 
            -
            #  | 
| 21 | 
            -
            #  | 
| 22 | 
            -
            # | 
| 23 | 
            -
            # | 
| 24 | 
            -
            #  | 
| 19 | 
            +
            /* Use Ruby defined macro definitions. */
         | 
| 20 | 
            +
            #if !defined(NUM2SIZET) && !defined(NUM2SSIZET)
         | 
| 21 | 
            +
            # if defined(HAVE_LONG_LONG) && SIZEOF_SIZE_T > SIZEOF_LONG
         | 
| 22 | 
            +
            #  define NUM2SIZET(x) ((size_t)NUM2ULL(x))
         | 
| 23 | 
            +
            #  define NUM2SSIZET(x) ((ssize_t)NUM2LL(x))
         | 
| 24 | 
            +
            # else
         | 
| 25 | 
            +
            #  define NUM2SIZET(x) NUM2ULONG(x)
         | 
| 26 | 
            +
            #  define NUM2SSIZET(x) NUM2LONG(x)
         | 
| 27 | 
            +
            # endif
         | 
| 25 28 | 
             
            #endif
         | 
| 26 29 |  | 
| 27 | 
            -
             | 
| 28 | 
            -
            #  | 
| 29 | 
            -
            #  | 
| 30 | 
            -
            # | 
| 31 | 
            -
            # | 
| 32 | 
            -
            #  | 
| 33 | 
            -
            # | 
| 34 | 
            -
            # | 
| 35 | 
            -
            #  | 
| 30 | 
            +
            /* Use Ruby defined macro definitions. */
         | 
| 31 | 
            +
            #if !defined(SIZET2NUM) && !defined(SSIZET2NUM)
         | 
| 32 | 
            +
            # if SIZEOF_SIZE_T > SIZEOF_LONG && defined(HAVE_LONG_LONG)
         | 
| 33 | 
            +
            #  define SIZET2NUM(v) ULL2NUM(v)
         | 
| 34 | 
            +
            #  define SSIZET2NUM(v) LL2NUM(v)
         | 
| 35 | 
            +
            # elif SIZEOF_SIZE_T == SIZEOF_LONG
         | 
| 36 | 
            +
            #  define SIZET2NUM(v) ULONG2NUM(v)
         | 
| 37 | 
            +
            #  define SSIZET2NUM(v) LONG2NUM(v)
         | 
| 38 | 
            +
            # else
         | 
| 39 | 
            +
            #  define SIZET2NUM(v) UINT2NUM(v)
         | 
| 40 | 
            +
            #  define SSIZET2NUM(v) INT2NUM(v)
         | 
| 41 | 
            +
            # endif
         | 
| 36 42 | 
             
            #endif
         | 
| 37 43 |  | 
| 38 44 |  | 
| 39 45 | 
             
            #define MAX_BUF 1024
         | 
| 40 | 
            -
            #define WINDOWS_API_VERSION "1. | 
| 46 | 
            +
            #define WINDOWS_API_VERSION "1.9.2"
         | 
| 41 47 |  | 
| 42 48 | 
             
            #define _T_VOID     0
         | 
| 43 49 | 
             
            #define _T_LONG     1
         | 
| @@ -288,8 +294,10 @@ static VALUE api_init(int argc, VALUE* argv, VALUE self) | |
| 288 294 | 
             
               if(NIL_P(v_return))
         | 
| 289 295 | 
             
                  v_return = rb_str_new2("L");
         | 
| 290 296 |  | 
| 297 | 
            +
            #if defined TAINTING_SUPPORT
         | 
| 291 298 | 
             
               SafeStringValue(v_dll);
         | 
| 292 299 | 
             
               SafeStringValue(v_proc);
         | 
| 300 | 
            +
            #endif
         | 
| 293 301 |  | 
| 294 302 | 
             
               hLibrary = LoadLibrary(TEXT(RSTRING_PTR(v_dll)));
         | 
| 295 303 |  | 
| @@ -356,7 +364,9 @@ static VALUE api_init(int argc, VALUE* argv, VALUE self) | |
| 356 364 | 
             
               // Push the numeric prototypes onto our int array for later use.
         | 
| 357 365 |  | 
| 358 366 | 
             
               for(i = 0; i < RARRAY_LEN(v_proto); i++){
         | 
| 367 | 
            +
            #if defined TAINTING_SUPPORT
         | 
| 359 368 | 
             
                  SafeStringValue(RARRAY_PTR(v_proto)[i]);
         | 
| 369 | 
            +
            #endif
         | 
| 360 370 | 
             
                  switch(*(TCHAR*)StringValuePtr(RARRAY_PTR(v_proto)[i])){
         | 
| 361 371 | 
             
                     case 'L':
         | 
| 362 372 | 
             
                        ptr->prototype[i] = _T_LONG;
         | 
| @@ -391,7 +401,9 @@ static VALUE api_init(int argc, VALUE* argv, VALUE self) | |
| 391 401 | 
             
                  ptr->return_type = _T_VOID;
         | 
| 392 402 | 
             
               }
         | 
| 393 403 | 
             
               else{
         | 
| 404 | 
            +
            #if defined TAINTING_SUPPORT
         | 
| 394 405 | 
             
                  SafeStringValue(v_return);
         | 
| 406 | 
            +
            #endif
         | 
| 395 407 | 
             
                  switch(*RSTRING_PTR(v_return)){
         | 
| 396 408 | 
             
                     case 'L':
         | 
| 397 409 | 
             
                        ptr->return_type = _T_LONG;
         | 
| @@ -482,7 +494,9 @@ static VALUE func_init(int argc, VALUE* argv, VALUE self){ | |
| 482 494 | 
             
               // Push the numeric prototypes onto our int array for later use.
         | 
| 483 495 |  | 
| 484 496 | 
             
               for(i = 0; i < RARRAY_LEN(v_proto); i++){
         | 
| 497 | 
            +
            #if defined TAINTING_SUPPORT
         | 
| 485 498 | 
             
                  SafeStringValue(RARRAY_PTR(v_proto)[i]);
         | 
| 499 | 
            +
            #endif
         | 
| 486 500 | 
             
                  switch(*(char*)StringValuePtr(RARRAY_PTR(v_proto)[i])){
         | 
| 487 501 | 
             
                     case 'L':
         | 
| 488 502 | 
             
                        ptr->prototype[i] = _T_LONG;
         | 
| @@ -517,7 +531,9 @@ static VALUE func_init(int argc, VALUE* argv, VALUE self){ | |
| 517 531 | 
             
                  ptr->return_type = _T_VOID;
         | 
| 518 532 | 
             
               }
         | 
| 519 533 | 
             
               else{
         | 
| 534 | 
            +
            #if defined TAINTING_SUPPORT
         | 
| 520 535 | 
             
                  SafeStringValue(v_return);
         | 
| 536 | 
            +
            #endif
         | 
| 521 537 | 
             
                  switch(*RSTRING_PTR(v_return)){
         | 
| 522 538 | 
             
                     case 'L':
         | 
| 523 539 | 
             
                        ptr->return_type = _T_LONG;
         | 
    
        data/lib/win32/api.rb
    CHANGED
    
    | @@ -50,6 +50,30 @@ begin | |
| 50 50 | 
             
                  end
         | 
| 51 51 | 
             
                end
         | 
| 52 52 |  | 
| 53 | 
            +
                if RbConfig::CONFIG['MINOR'] == '6'
         | 
| 54 | 
            +
                  if RbConfig::CONFIG['arch'] =~ /x64/i
         | 
| 55 | 
            +
                    require File.join(File.dirname(__FILE__), 'ruby26_64/win32/api')
         | 
| 56 | 
            +
                  else
         | 
| 57 | 
            +
                    require File.join(File.dirname(__FILE__), 'ruby26_32/win32/api')
         | 
| 58 | 
            +
                  end
         | 
| 59 | 
            +
                end
         | 
| 60 | 
            +
             | 
| 61 | 
            +
                if RbConfig::CONFIG['MINOR'] == '7'
         | 
| 62 | 
            +
                  if RbConfig::CONFIG['arch'] =~ /x64/i
         | 
| 63 | 
            +
                    require File.join(File.dirname(__FILE__), 'ruby27_64/win32/api')
         | 
| 64 | 
            +
                  else
         | 
| 65 | 
            +
                    require File.join(File.dirname(__FILE__), 'ruby27_32/win32/api')
         | 
| 66 | 
            +
                  end
         | 
| 67 | 
            +
                end
         | 
| 68 | 
            +
              when '3'
         | 
| 69 | 
            +
                if RbConfig::CONFIG['MINOR'] == '0'
         | 
| 70 | 
            +
                  if RbConfig::CONFIG['arch'] =~ /x64/i
         | 
| 71 | 
            +
                    require File.join(File.dirname(__FILE__), 'ruby30_64/win32/api')
         | 
| 72 | 
            +
                  else
         | 
| 73 | 
            +
                    require File.join(File.dirname(__FILE__), 'ruby30_32/win32/api')
         | 
| 74 | 
            +
                  end
         | 
| 75 | 
            +
                end
         | 
| 76 | 
            +
             | 
| 53 77 | 
             
              end
         | 
| 54 78 | 
             
            rescue LoadError
         | 
| 55 79 | 
             
              require File.join(File.dirname(__FILE__), '../../ext/api')
         | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
    
        data/test/test_win32_api.rb
    CHANGED
    
    
    
        data/win32-api.gemspec
    CHANGED
    
    | @@ -2,18 +2,18 @@ require 'rubygems' | |
| 2 2 |  | 
| 3 3 | 
             
            Gem::Specification.new do |spec|
         | 
| 4 4 | 
             
              spec.name       = 'win32-api'
         | 
| 5 | 
            -
              spec.version    = '1. | 
| 5 | 
            +
              spec.version    = '1.9.2'
         | 
| 6 6 | 
             
              spec.authors    = ['Daniel J. Berger', 'Park Heesob', 'Hiroshi Hatake']
         | 
| 7 7 | 
             
              spec.license    = 'Artistic-2.0'
         | 
| 8 8 | 
             
              spec.email      = 'djberg96@gmail.com'
         | 
| 9 | 
            -
              spec.homepage   = 'http://github.com/ | 
| 9 | 
            +
              spec.homepage   = 'http://github.com/cosmo0920/win32-api'
         | 
| 10 10 | 
             
              spec.summary    = 'A superior replacement for Win32API'
         | 
| 11 11 | 
             
              spec.test_files = Dir['test/test*']
         | 
| 12 12 | 
             
              spec.extensions = ['ext/extconf.rb']
         | 
| 13 13 | 
             
              spec.files      = Dir['**/*'].reject{ |f| f.include?('git') }
         | 
| 14 14 |  | 
| 15 15 | 
             
              spec.required_ruby_version = '>= 1.8.2'
         | 
| 16 | 
            -
              spec.extra_rdoc_files = [' | 
| 16 | 
            +
              spec.extra_rdoc_files = ['CHANGES', 'MANIFEST', 'ext/win32/api.c']
         | 
| 17 17 |  | 
| 18 18 | 
             
              spec.add_development_dependency('test-unit', '>= 2.5.0')
         | 
| 19 19 | 
             
              spec.add_development_dependency('rake')
         | 
    
        metadata
    CHANGED
    
    | @@ -1,16 +1,16 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: win32-api
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1. | 
| 4 | 
            +
              version: 1.9.2
         | 
| 5 5 | 
             
            platform: universal-mingw32
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Daniel J. Berger
         | 
| 8 8 | 
             
            - Park Heesob
         | 
| 9 9 | 
             
            - Hiroshi Hatake
         | 
| 10 | 
            -
            autorequire: | 
| 10 | 
            +
            autorequire:
         | 
| 11 11 | 
             
            bindir: bin
         | 
| 12 12 | 
             
            cert_chain: []
         | 
| 13 | 
            -
            date:  | 
| 13 | 
            +
            date: 2020-09-13 00:00:00.000000000 Z
         | 
| 14 14 | 
             
            dependencies:
         | 
| 15 15 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 16 16 | 
             
              name: test-unit
         | 
| @@ -49,18 +49,20 @@ email: djberg96@gmail.com | |
| 49 49 | 
             
            executables: []
         | 
| 50 50 | 
             
            extensions: []
         | 
| 51 51 | 
             
            extra_rdoc_files:
         | 
| 52 | 
            -
            - README
         | 
| 53 52 | 
             
            - CHANGES
         | 
| 54 53 | 
             
            - MANIFEST
         | 
| 55 54 | 
             
            - ext/win32/api.c
         | 
| 56 55 | 
             
            files:
         | 
| 57 56 | 
             
            - CHANGES
         | 
| 57 | 
            +
            - Dockerfile
         | 
| 58 | 
            +
            - Dockerfile.trunk
         | 
| 58 59 | 
             
            - Gemfile
         | 
| 59 | 
            -
            - Gemfile.lock
         | 
| 60 60 | 
             
            - MANIFEST
         | 
| 61 | 
            -
            - README
         | 
| 61 | 
            +
            - README.md
         | 
| 62 | 
            +
            - RELEASE.md
         | 
| 62 63 | 
             
            - Rakefile
         | 
| 63 64 | 
             
            - appveyor.yml
         | 
| 65 | 
            +
            - build-gem.bat
         | 
| 64 66 | 
             
            - ext/win32/api.c
         | 
| 65 67 | 
             
            - lib/win32/api.rb
         | 
| 66 68 | 
             
            - lib/win32/ruby21_32/win32/api.so
         | 
| @@ -73,17 +75,23 @@ files: | |
| 73 75 | 
             
            - lib/win32/ruby24_64/win32/api.so
         | 
| 74 76 | 
             
            - lib/win32/ruby25_32/win32/api.so
         | 
| 75 77 | 
             
            - lib/win32/ruby25_64/win32/api.so
         | 
| 78 | 
            +
            - lib/win32/ruby26_32/win32/api.so
         | 
| 79 | 
            +
            - lib/win32/ruby26_64/win32/api.so
         | 
| 80 | 
            +
            - lib/win32/ruby27_32/win32/api.so
         | 
| 81 | 
            +
            - lib/win32/ruby27_64/win32/api.so
         | 
| 76 82 | 
             
            - lib/win32/ruby2_32/win32/api.so
         | 
| 77 83 | 
             
            - lib/win32/ruby2_64/win32/api.so
         | 
| 84 | 
            +
            - lib/win32/ruby30_32/win32/api.so
         | 
| 85 | 
            +
            - lib/win32/ruby30_64/win32/api.so
         | 
| 78 86 | 
             
            - test/test_win32_api.rb
         | 
| 79 87 | 
             
            - test/test_win32_api_callback.rb
         | 
| 80 88 | 
             
            - test/test_win32_api_function.rb
         | 
| 81 89 | 
             
            - win32-api.gemspec
         | 
| 82 | 
            -
            homepage: http://github.com/ | 
| 90 | 
            +
            homepage: http://github.com/cosmo0920/win32-api
         | 
| 83 91 | 
             
            licenses:
         | 
| 84 92 | 
             
            - Artistic-2.0
         | 
| 85 93 | 
             
            metadata: {}
         | 
| 86 | 
            -
            post_install_message: | 
| 94 | 
            +
            post_install_message:
         | 
| 87 95 | 
             
            rdoc_options: []
         | 
| 88 96 | 
             
            require_paths:
         | 
| 89 97 | 
             
            - lib
         | 
| @@ -98,9 +106,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 98 106 | 
             
                - !ruby/object:Gem::Version
         | 
| 99 107 | 
             
                  version: '0'
         | 
| 100 108 | 
             
            requirements: []
         | 
| 101 | 
            -
             | 
| 102 | 
            -
             | 
| 103 | 
            -
            signing_key: 
         | 
| 109 | 
            +
            rubygems_version: 3.2.0.rc.1
         | 
| 110 | 
            +
            signing_key:
         | 
| 104 111 | 
             
            specification_version: 4
         | 
| 105 112 | 
             
            summary: A superior replacement for Win32API
         | 
| 106 113 | 
             
            test_files:
         | 
    
        data/Gemfile.lock
    DELETED
    
    | @@ -1,24 +0,0 @@ | |
| 1 | 
            -
            PATH
         | 
| 2 | 
            -
              remote: .
         | 
| 3 | 
            -
              specs:
         | 
| 4 | 
            -
                win32-api (1.7.0)
         | 
| 5 | 
            -
             | 
| 6 | 
            -
            GEM
         | 
| 7 | 
            -
              remote: https://rubygems.org/
         | 
| 8 | 
            -
              specs:
         | 
| 9 | 
            -
                power_assert (1.0.2)
         | 
| 10 | 
            -
                rake (12.0.0)
         | 
| 11 | 
            -
                test-unit (3.2.5)
         | 
| 12 | 
            -
                  power_assert
         | 
| 13 | 
            -
             | 
| 14 | 
            -
            PLATFORMS
         | 
| 15 | 
            -
              x64-mingw32
         | 
| 16 | 
            -
              x86-mingw32
         | 
| 17 | 
            -
             | 
| 18 | 
            -
            DEPENDENCIES
         | 
| 19 | 
            -
              rake
         | 
| 20 | 
            -
              test-unit (>= 2.5.0)
         | 
| 21 | 
            -
              win32-api!
         | 
| 22 | 
            -
             | 
| 23 | 
            -
            BUNDLED WITH
         | 
| 24 | 
            -
               1.15.4
         |