win32-api 1.0.4-x86-mswin32-60 → 1.0.5-x86-mswin32-60
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.
- data/CHANGES +6 -1
- data/README +13 -0
- data/ext/extconf.rb +10 -0
- data/ext/win32/api.c +14 -6
- data/lib/win32/api.so +0 -0
- data/test/tc_win32_api.rb +1 -1
- metadata +43 -46
    
        data/CHANGES
    CHANGED
    
    | @@ -1,3 +1,8 @@ | |
| 1 | 
            +
            = 1.0.5 - 20-Nov-2007
         | 
| 2 | 
            +
            * The API.new method now defaults to "W" (wide character functions) before "A"
         | 
| 3 | 
            +
              (ANSI functions) if the $KCODE global variable is set to 'u' (UTF8).
         | 
| 4 | 
            +
            * Minor improvements to the Rakefile.
         | 
| 5 | 
            +
             | 
| 1 6 | 
             
            = 1.0.4 - 26-Oct-2007
         | 
| 2 7 | 
             
            * Fixed a bug where methods that returned pointers ('P') could choke if the
         | 
| 3 8 | 
             
              resulting pointer was 0 or NULL. In this case, nil is now returned instead.
         | 
| @@ -21,4 +26,4 @@ | |
| 21 26 | 
             
            * Fixed the gemspec for the native build.
         | 
| 22 27 |  | 
| 23 28 | 
             
            = 1.0.0 - 14-Sep-2007
         | 
| 24 | 
            -
            * Initial release
         | 
| 29 | 
            +
            * Initial release
         | 
    
        data/README
    CHANGED
    
    | @@ -14,13 +14,26 @@ | |
| 14 14 |  | 
| 15 15 | 
             
               puts buf.strip
         | 
| 16 16 |  | 
| 17 | 
            +
               # Callback example
         | 
| 18 | 
            +
               EnumWindows     = API.new('EnumWindows', 'KP', 'L', 'user32')
         | 
| 19 | 
            +
               GetWindowText   = API.new('GetWindowText', 'LPI', 'I', 'user32')
         | 
| 20 | 
            +
               EnumWindowsProc = API::Callback.new('LP', 'I'){ |handle, param|
         | 
| 21 | 
            +
                  buf = "\0" * 200
         | 
| 22 | 
            +
                  GetWindowText.call(handle, buf, 200);
         | 
| 23 | 
            +
                  puts buf.strip
         | 
| 24 | 
            +
                  buf.index(param).nil? ? true : false
         | 
| 25 | 
            +
               } 
         | 
| 26 | 
            +
               
         | 
| 17 27 | 
             
            = Differences between win32-api and Win32API
         | 
| 28 | 
            +
               * This library has callback support!
         | 
| 18 29 | 
             
               * Argument order change. The DLL name is now last, not first.
         | 
| 19 30 | 
             
               * Removed the 'N' and 'n'. Always use 'L' for longs now.
         | 
| 20 31 | 
             
               * Sensible default arguments for the prototype, return type and DLL name.
         | 
| 21 32 | 
             
               * Reader methods for the function name, prototype, return type and DLL.
         | 
| 22 33 | 
             
               * Removed the support for lower case prototype and return types. Always
         | 
| 23 34 | 
             
                 use capital letters.
         | 
| 35 | 
            +
               * Resorts to wide character functions (where possible) when $KCODE is set
         | 
| 36 | 
            +
                 to UTF8.
         | 
| 24 37 |  | 
| 25 38 | 
             
            = Developer's Notes
         | 
| 26 39 | 
             
               The current Win32API library that ships with the standard library has been
         | 
    
        data/ext/extconf.rb
    ADDED
    
    | @@ -0,0 +1,10 @@ | |
| 1 | 
            +
            ##########################################################################
         | 
| 2 | 
            +
            # extconf.rb
         | 
| 3 | 
            +
            # 
         | 
| 4 | 
            +
            # The Windows::API binary should be built using the Rake task, i.e.
         | 
| 5 | 
            +
            # 'rake build' or 'rake install'.
         | 
| 6 | 
            +
            ##########################################################################
         | 
| 7 | 
            +
            require 'mkmf'
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            have_func('strncpy_s')
         | 
| 10 | 
            +
            create_makefile('win32/api', 'win32')
         | 
    
        data/ext/win32/api.c
    CHANGED
    
    | @@ -2,7 +2,7 @@ | |
| 2 2 | 
             
            #include <windows.h>
         | 
| 3 3 |  | 
| 4 4 | 
             
            #define MAX_BUF 1024
         | 
| 5 | 
            -
            #define WINDOWS_API_VERSION "1.0. | 
| 5 | 
            +
            #define WINDOWS_API_VERSION "1.0.5"
         | 
| 6 6 |  | 
| 7 7 | 
             
            #define _T_VOID     0
         | 
| 8 8 | 
             
            #define _T_LONG     1
         | 
| @@ -146,6 +146,8 @@ static VALUE api_init(int argc, VALUE* argv, VALUE self) | |
| 146 146 | 
             
               FARPROC fProc;
         | 
| 147 147 | 
             
               Win32API* ptr;
         | 
| 148 148 | 
             
               int i;
         | 
| 149 | 
            +
               char* first  = "A";
         | 
| 150 | 
            +
               char* second = "W";
         | 
| 149 151 | 
             
               VALUE v_proc, v_proto, v_return, v_dll, v_bool, v_name;
         | 
| 150 152 |  | 
| 151 153 | 
             
               rb_scan_args(argc, argv, "13", &v_proc, &v_proto, &v_return, &v_dll);
         | 
| @@ -190,19 +192,25 @@ static VALUE api_init(int argc, VALUE* argv, VALUE self) | |
| 190 192 | 
             
               ptr->library = hLibrary;
         | 
| 191 193 |  | 
| 192 194 | 
             
               /* Attempt to get the function.  If it fails, try again with an 'A'
         | 
| 193 | 
            -
                * appended.  If that fails, try again with a 'W' appended. | 
| 195 | 
            +
                * appended.  If that fails, try again with a 'W' appended. If that
         | 
| 194 196 | 
             
                * still fails, raise an API::Error.
         | 
| 195 197 | 
             
                */
         | 
| 196 198 | 
             
               fProc = GetProcAddress(hLibrary, TEXT(RSTRING(v_proc)->ptr));
         | 
| 197 199 |  | 
| 200 | 
            +
               /* The order of 'A' and 'W' is reversed if $KCODE is set to 'UTF8'. */
         | 
| 201 | 
            +
               if(!_tcscmp(rb_get_kcode(), "UTF8")){
         | 
| 202 | 
            +
                  first  = "W";
         | 
| 203 | 
            +
                  second = "A";
         | 
| 204 | 
            +
               }
         | 
| 205 | 
            +
             | 
| 198 206 | 
             
               if(!fProc){
         | 
| 199 207 | 
             
                  VALUE v_ascii = rb_str_new3(v_proc);
         | 
| 200 | 
            -
                  v_ascii = rb_str_cat(v_ascii,  | 
| 208 | 
            +
                  v_ascii = rb_str_cat(v_ascii, first, 1);
         | 
| 201 209 | 
             
                  fProc = GetProcAddress(hLibrary, TEXT(RSTRING(v_ascii)->ptr));
         | 
| 202 210 |  | 
| 203 211 | 
             
                  if(!fProc){
         | 
| 204 212 | 
             
                     VALUE v_unicode = rb_str_new3(v_proc);
         | 
| 205 | 
            -
                     v_unicode = rb_str_cat(v_unicode,  | 
| 213 | 
            +
                     v_unicode = rb_str_cat(v_unicode, second, 1);
         | 
| 206 214 | 
             
                     fProc = GetProcAddress(hLibrary, TEXT(RSTRING(v_unicode)->ptr));
         | 
| 207 215 |  | 
| 208 216 | 
             
                     if(!fProc){
         | 
| @@ -342,7 +350,7 @@ DWORD CallbackFunction(PARAM param) | |
| 342 350 | 
             
            	           if(NIL_P(v_retval)){
         | 
| 343 351 | 
             
            	              return 0;
         | 
| 344 352 | 
             
            	           }
         | 
| 345 | 
            -
            	           else if | 
| 353 | 
            +
            	           else if(FIXNUM_P(v_retval)){
         | 
| 346 354 | 
             
            	              return NUM2ULONG(v_retval);
         | 
| 347 355 | 
             
            	           }
         | 
| 348 356 | 
             
            	           else{
         | 
| @@ -519,6 +527,6 @@ void Init_api(){ | |
| 519 527 |  | 
| 520 528 | 
             
               /* Constants */
         | 
| 521 529 |  | 
| 522 | 
            -
               /* 1. | 
| 530 | 
            +
               /* 1.1.0: The version of this library, returned as a String */
         | 
| 523 531 | 
             
               rb_define_const(cAPI, "VERSION", rb_str_new2(WINDOWS_API_VERSION));
         | 
| 524 532 | 
             
            }
         | 
    
        data/lib/win32/api.so
    CHANGED
    
    | Binary file | 
    
        data/test/tc_win32_api.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,21 +1,46 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 | 
            -
            rubygems_version: 0.9.4.6
         | 
| 3 | 
            -
            specification_version: 2
         | 
| 4 2 | 
             
            name: win32-api
         | 
| 5 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 6 | 
            -
              version: 1.0. | 
| 7 | 
            -
             | 
| 8 | 
            -
             | 
| 9 | 
            -
             | 
| 10 | 
            -
            - lib
         | 
| 11 | 
            -
            email: djberg96@gmail.com
         | 
| 12 | 
            -
            homepage: http://www.rubyforge.org/projects/win32utils
         | 
| 13 | 
            -
            rubyforge_project: win32utils
         | 
| 14 | 
            -
            description: A superior replacement for Win32API
         | 
| 4 | 
            +
              version: 1.0.5
         | 
| 5 | 
            +
            platform: x86-mswin32-60
         | 
| 6 | 
            +
            authors: 
         | 
| 7 | 
            +
            - Daniel J. Berger
         | 
| 15 8 | 
             
            autorequire: 
         | 
| 16 | 
            -
            default_executable: 
         | 
| 17 9 | 
             
            bindir: bin
         | 
| 10 | 
            +
            cert_chain: []
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            date: 2008-01-01 00:00:00 -07:00
         | 
| 13 | 
            +
            default_executable: 
         | 
| 14 | 
            +
            dependencies: []
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            description: A superior replacement for Win32API
         | 
| 17 | 
            +
            email: djberg96@gmail.com
         | 
| 18 | 
            +
            executables: []
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            extensions: []
         | 
| 21 | 
            +
             | 
| 22 | 
            +
            extra_rdoc_files: 
         | 
| 23 | 
            +
            - README
         | 
| 24 | 
            +
            - CHANGES
         | 
| 25 | 
            +
            - MANIFEST
         | 
| 26 | 
            +
            - ext/win32/api.c
         | 
| 27 | 
            +
            files: 
         | 
| 28 | 
            +
            - ext/extconf.rb
         | 
| 29 | 
            +
            - ext/win32
         | 
| 30 | 
            +
            - ext/win32/api.c
         | 
| 31 | 
            +
            - test/tc_win32_api.rb
         | 
| 32 | 
            +
            - test/tc_win32_api_callback.rb
         | 
| 33 | 
            +
            - lib/win32/api.so
         | 
| 34 | 
            +
            - README
         | 
| 35 | 
            +
            - CHANGES
         | 
| 36 | 
            +
            - MANIFEST
         | 
| 18 37 | 
             
            has_rdoc: true
         | 
| 38 | 
            +
            homepage: http://www.rubyforge.org/projects/win32utils
         | 
| 39 | 
            +
            post_install_message: 
         | 
| 40 | 
            +
            rdoc_options: []
         | 
| 41 | 
            +
             | 
| 42 | 
            +
            require_paths: 
         | 
| 43 | 
            +
            - lib
         | 
| 19 44 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement 
         | 
| 20 45 | 
             
              requirements: 
         | 
| 21 46 | 
             
              - - ">="
         | 
| @@ -28,41 +53,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 28 53 | 
             
                - !ruby/object:Gem::Version 
         | 
| 29 54 | 
             
                  version: "0"
         | 
| 30 55 | 
             
              version: 
         | 
| 31 | 
            -
             | 
| 32 | 
            -
              cpu: x86
         | 
| 33 | 
            -
              os: mswin32
         | 
| 34 | 
            -
              version: "60"
         | 
| 35 | 
            -
            signing_key: 
         | 
| 36 | 
            -
            cert_chain: []
         | 
| 56 | 
            +
            requirements: []
         | 
| 37 57 |  | 
| 38 | 
            -
             | 
| 39 | 
            -
             | 
| 40 | 
            -
             | 
| 41 | 
            -
             | 
| 42 | 
            -
             | 
| 43 | 
            -
            - ext/win32/api.c
         | 
| 44 | 
            -
            - lib/win32
         | 
| 45 | 
            -
            - lib/win32/api.so
         | 
| 46 | 
            -
            - test/tc_win32_api.rb
         | 
| 47 | 
            -
            - test/tc_win32_api_callback.rb
         | 
| 48 | 
            -
            - README
         | 
| 49 | 
            -
            - CHANGES
         | 
| 50 | 
            -
            - MANIFEST
         | 
| 58 | 
            +
            rubyforge_project: win32utils
         | 
| 59 | 
            +
            rubygems_version: 1.0.1
         | 
| 60 | 
            +
            signing_key: 
         | 
| 61 | 
            +
            specification_version: 2
         | 
| 62 | 
            +
            summary: A superior replacement for Win32API
         | 
| 51 63 | 
             
            test_files: 
         | 
| 52 64 | 
             
            - test/tc_win32_api.rb
         | 
| 53 65 | 
             
            - test/tc_win32_api_callback.rb
         | 
| 54 | 
            -
            rdoc_options: []
         | 
| 55 | 
            -
             | 
| 56 | 
            -
            extra_rdoc_files: 
         | 
| 57 | 
            -
            - README
         | 
| 58 | 
            -
            - CHANGES
         | 
| 59 | 
            -
            - MANIFEST
         | 
| 60 | 
            -
            - ext/win32/api.c
         | 
| 61 | 
            -
            executables: []
         | 
| 62 | 
            -
             | 
| 63 | 
            -
            extensions: []
         | 
| 64 | 
            -
             | 
| 65 | 
            -
            requirements: []
         | 
| 66 | 
            -
             | 
| 67 | 
            -
            dependencies: []
         | 
| 68 | 
            -
             |