Philatélie sur
[MGGEN.COM : Magic developers resources - GET.DLL free libray]  
[ Magic DLL > X XRef * Contact * History * Links * Repository * FAQ * French ]
[ GET.DLL | Magic Tools | What's New ! | Download | License | Web Rings ]

[^] GET.DLL (version 2,5,3,9 - 01/19/2006)

"Any sufficiently advanced technology is indistinguishable from magic."
Arthur C. Clarke's Third Law

[^] GET.DLL : a Magic DLL collection

GET.DLL is a set of 6 freeware Magic DLLs, one for general functions GET.DLL, one for network and internet functions NETGET.DLL, one to dial a phone number using the sound card PHONEGET.DLL, one for email MAILGET.DLL, one for Windows NT specific functions NTGET.DLL, and another for Citrix (Metaframe) system MFGET.DLL.

This Magic DLLs suite adds useful functions (UDP or UDF) for Magic V7, V8 and V9 (eDeveloper) for Windows 9X/ME or NT/2K, that I recommend you to call from a Magic program wrapper (easier maintenance, possibility to replace call to GET.DLL by use of the Magic V8.2+ calldll to Windows DLLs (a few wrappers show this new possibility), or a newly implemented Magic function, ... ), as well as several Magic Development tools.

[^] What is Magic RADD from Magic Software Enterprises ?

[Magic Software Enterprises M Logo] Magic (now Magic 9 eDeveloper) is an innovating engine based RAD tool (or RADD for Rapid Application Development and Deployment) that outperforms other 4GL tools in term of rapidity of development, as its performances in various development competitions prove it ! You can use the same paradigm to develop stand alone applications, but also n-tiers, internet or client/server applications, in various server platforms (Windows NT, Linux, various Unix flavors, AS/400, ...) and databases ( Oracle, MS SQL server, Sybase, Btrieve, ODBC (Btrieve ODBC), DB2, ...). CACHÉ is the reference database in Magic eDeveloper.

Magic RADD is edited by Magic Software Enterprises (MSE at or )

This site is at
(Add this page to your Favorites)
and currently hosted at

[ Magic Software Enterprises Resources - Magic DLL for Magic RAD ]

[^] Magic Functions

The GET.DLL package contains over 250 functions to enhance Magic :

  • Change cursors, icons (Magic and client icons, top right bitmap, status icon), buttons (avi/ani, treeview, calendar, hyperlink, dynamic bitmap buttons, enhanced styles, zoom, progress bar, icon, position,...), tables.
  • Enhanced behavior of the status bar.
  • Use the numeric keypad ENTER key as the TAB key.
  • Evaluation of a string mathematical expression.
  • Make a combo box that lists Windows printer, and get the default one ; a "copy /b prn" replacement, network enabled.
  • Read/write the registry, .ini files.
  • Get an environment variable, folder locations (Windows, system, current, Magic, ...).
  • Change Magic size and position, change attributes of Magic title bar. maximize/minimize/center/restore/fill a Magic task.
  • Translate between OEM and ANSI.
  • Functions to deal with Magic lists and CSV format.
  • Network functions : included a complete FTP client, a function to save a web page to a file, a Winpopup client, a phone dialer, and various TCP/IP functions.
  • Email, Phone dialer with sound card ; specific functions for NT, for Citrix systems.
  • ...

[ Magic Software Enterprises Resources - Magic DLL for Magic RAD ]

[^] Magic Tools

As part of the GET.DLL package, there are also several Magic Development tools (also look at the Magic Cross Reference Printing shareware tool).

  • Button Maker Tool to help designing Magic 4 states button bitmap.
  • Make a resource-only Magic DLL (with LCC-Win32). This let you put all your resources (bitmap, icons) in a single file for easier distribution, it also speed up access to bitmaps, although it takes more memory.
  • FindExp search a string in the expression tables (using mgapi.dll). Its a kind of Cross Reference tool for expression (for instance you can search for a function, a particular value,...).
  • Make a win_kbd.lng using Windows settings (win_kbd.exe > win_kbd.lng), that may be better than the MSE one.
  • Get.get_dll returns the list of functions in a Magic DLL.
  • GetMagicProcAddress (in mgproc.dll) lets you use a function (exported via the MAGIC_BIND function in a Magic DLL) in other language than Magic. GetMagicProcAddress is an equivalent of the Windows API function GetProcAddress.

[ Magic Software Enterprises Resources - Magic DLL for Magic RAD ]

[^] New

For previous enhancements of this Magic DLLs suite, look at the History of modifications. The description of all functions and tools is available as an help file and as an html file. Don't forget to also look at the Magic repository for other Magic goodies (Magic technotes, Magic freewares, Magic DLLs and other MagicWares such as a Magic debugger). If you use GET.DLL, please link to my page. Users suggestions (or respond to bugs reports) are marked by Suggestion !.

[Magic Software Enterprises M Logo]

[^] History ( Download here )

2,5,3,9 - 01/19/2006

  • The function 'get.get_compile_date' uses a function that is not always available with Windows 9#/NT4. This version load the DBhelp.dll dynamically so get.dll can be loaded under the older system. In order to use this function on this systems you can install the DBhelp.dll redistribuable.
  • 2,5,3,5 (11/27/2005)

    • 'get.get_img_type' return image format by looking at the internal "magic number" for a file without extension. Supported image types are gif, jpg, png, bmp and pcx.
    • 'get.get_sys_datetime' gives the system date with milliseconds, 'get.set_sys_datetime' lets you change the system date.
    • 'netget.ftp_iosize' return the size of a server file if available.
    • The edit color change also changed color of combo boxes.
    • The subclassed slider control was clicking on the top right corner of the window in order to force focus (if a button was near, it was activated), it now clicks on the Magic scroll bar box under the get.dll slider and only when needed.
    • 'get.set_icon' didn't work for changing Magic icon with XP style activated.
    • A screen flashing problem has been corrected with 'get.title_clock'.
    • A problem with RTF controls and 'get.big_magic' is corrected.
    • I removed the 'get.kbput' internal Delay(), you can replace it with Magic Delay function. I have no good solution to know if the target application can accept kbputs : an approximation however is 'get.wait_window_idle', that looks if a process uses CPU (NT only).
    • New DLL : tseget.dll. It's a replacement of mfget.dll (that deals with old Citrix Server, before the technology was bought by Microsoft) for Windows Terminal Service Edition. Among things, it can retrieve client informations.
    • 'get.is_remote_session' return 'Yes' if Magic is launched from a TSE client session.
    • 'get.del_tree' was crashing when a folder had a (not so) large number of files.
    • 'get.get_printer_info' and 'get.set_printer_info' didn't work anymore with the 'BinName' parameter.
    • New function 'get.get_compile_date'. Usefull to check currently used version of Magic or a Database Gateway as the version number isn't set the Windows way.
    • 'get.flb_browse' use the new UI if available (try to install the last IE if it doesn't work), adding a "Create Folder" button.
    • Various icons have been updated to 256 colors if the display allows it.

    2,5,1,3 (03/17/04)

    • Bug fix : problems with buttons without title (this append quite often actually even if you don't have empty buttons).
    • 'get.get_temp' adds another test as the current directory may also be '.\'.

    2,5,1,1 (03/03/04)

    • 'get.replace_file' now deals with leading spaces if you enclose the string by ". Note that if you really want to enclose by quotes, you have to do it twice (note : this is a behaviour change that may put problem for actual users) Suggestion !.
    • 'get.title_clock' accepts as parameter 'dt:[date format]timbre format' so you can put the day before the time Suggestion !.
    • 'get.get_temp' adds another test : it looks if the found temporary folder is the current one and skip it until it find a better one. The order is this one
      1. Windows API function. Usually stop here.
      2. TMP environment variable.
      3. TEMP environment variable.
      4. TEMP environment variable.
      5. Local Application Data\..\Temp\.
      6. Startup path.

    2,5,0,3 (02/26/04)

    • New 'GB' and 'gb' button styles. This style let you specify a five-state bitmap and set the title of the button. 'gb' uses a standard (distorted) scaling technique, but 'GB' cuts each state in 9 bitmaps to draw the button (4 corners, 4 borders and 1 background) Suggestion !. Go and see my stamp site for a sample of this technique using frames. Gradient support for background may be added in the future.
    • New 'tc:{Color}' button style to set the color of the button title Suggestion !.
    • 'get._set_slider' (that modify the Magic slider) now accepts as parameters 'BG' ; '' (for default XP-like) or a five-state bitmap. Most other existing styles can be added (ask me if you need one) Suggestion !.
    • The 'get._set_button' function has been enhanced and you should now use almost any possible prefix as default prefix for all the buttons. Beware that to use after that some GET.DLL style may be more complex (it's a consequence of the possibility to mix several styles on a single button).
    • 'get.rm_print_preview' disable the print button and menus so the user can't print via print preview. Suggestion !.
    • 'get.dir2file' save into a Magic Memory file the specified filter. Then you can get this file in a memory table by putting into a blob (File2Blb) and then load the blob content into a memory table (MTblSet). This function works with functions introduced in Magic 9.40. This method is way faster than the previous one (use of get.dir_init, get.dir_read, dir_close, get_file_attributes, get_short_pathname, get_io_date, local_date_time and iosize) ; mainly because of less API calls but also because of the optimized format provided to Magic.
    • 'get.limit_instance' can test if the specified number of the specified object exist in the system or in the session (for Terminal Server). This is useful to limit the number of instance of an application.
    • Mailget.dll MAPI functions now tests if the mail package (Outlook) changes the current folder, and restores it back if it's the case. So you don't have to do it yourself by using 'get.get_dir' and 'get.set_dir' as previously recommended.
    • 'get.get_md5' calculates the MD5 signature of the passed string, from the RFC 1321 (derived from the RSA Data Security, Inc. MD5 Message-Digest Algorithm) Suggestion !.
    • 'netget.ftp_option' allows you to choose the FTP server port (21 by default) and set the connexion as passive (useful with some proxy servers) Suggestion !.
    • 'get.get_printable_size' get from the printer driver the width and height of the printable zone on the paper. It allows you to do fine control for graphic printing on pre-printed paper Suggestion !.
    • 'get.set_default_printer' uses the new (well, Windows 2000) SetDefaultPrinter API function when available Suggestion !.
    • 'get.get_temp' and 'get.temp_file' try 'C:\DOCUME~1\username\LOCALS~1\Temp' as path before using the current folder. Note that files that are created with get.temp_file are not automatically deleted as incorrectly stated in the documentation Suggestion !.
    • 'get.kbput', that duplicates the Magic kbput function but adds keys (Alt+Letter for instance) and work for other application as well, didn't work with <Ctrl+LETTER> shortcut. Look fixed now Suggestion !.
    • 'get_magic_ini' didn't return the full path if it was not specified on the command line with the /INI flag. Under Win NT and upper, the unicode string is used internally in order to correct a problem under Windows 2K Suggestion !.
    • The functionality that removes the "OK" button from the Magic reindex dialog was set by default, however that was also removing some OK buttons that shouldn't. Suggestion !.
    • 'get.shortcut_create' can now set the "minimize" option Suggestion !.
    • 'get.set_option' has 2 more options to better support backward compatibility : 'calendar_keyboard' and 'treeview_keyboard' can be set to 'no' in order to remove the keyboard support introduced some times ago on this controls. Suggestion !.
    • 'get.is_file_open' test if an application is opening the specified file.
    • 'get.open_file' and 'get.file_save' don't show anymore the Magic icon, but set the left icon bar when available.
    • I've changed several UDP in order to deal with Magic v9 "skip" check box. If this parameter is checked, a NULL is send to the UDP, it was impossible before V9 so I didn't take this into account. If you skip a variable (as an optional parameter or an unwanted return value) and this produce an error, send me an email so I can correct the problem. (03/17/2003)

    • In a common effort to ensure compatibility beetween Hotfudge V1.6 and get.dll, I've set an option to remove some styles (av:, an: , cl:, tv and mq) that are also used in hotfudge. Upper versions of this style can be used and are now the prefered way (AV: , AN:, CL:, TV and MQ). This option is set by the upd 'get.set_option' ('hotfudge_compatibility', 'yes') and is currently set at false by default, althought this option as well as common styles may be removed in the future. So I recommand that you change these common styles the uppercase version as soon as possible.
    • 'hf:' prefix, that didn't work anyway, has been removed. The 'wb:' prefix has been added to show a normal Windows button.
    • 'zz:' style removes the previously applied styles. Useful to apply new styles to an already changed button. Note that this function doesn't apply to controls and should ne considered as beta.
    • Optionnal - no by default - focus on click on calendar control ('get.set_option' with parameters 'calendar_focus' and 'yes') ; keyboard support (Page Down/Up : next/previous month, Right/Left/Down/Up: next/previous day, next, previous week, Ctrl+Right/Left : next/previous year, Home/End : begin/end of month).
    • 'get.get_calendar_date' now also returns 'DOUBLE_CLICK : YYYYMMDD' if a day was clicked twice. Suggestion !.
    • 'get.set_day_state' set the specified date in bold font or back to normal font. This function allows you to highlight days in a calendar control.
    • 'get.set_option' with parameters 'treeview_focus' and 'yes' can be applied, so the treeview get focus when you click on it. This option has been added to be able to keep previous behaviour.
    • 'get.get_img_size' didn't work for jpeg file with embedded thumbail such as those produced by digital cameras. Suggestion !.
    • 'get.fill_win' in conjonction with a border-less window and some Magic window size gave sliders. It now fills two pixels at the right and the bottom less. And if sliders where present before the call the the function, it now deals with that. Suggestion !.
    • 'ba;' has a smaller border. Suggestion !.
    • 'get.file_compare' compares 2 files. Suggestion !.
    • 'get.process_id' returns Magic process identifier. Suggestion !.
    • 'netget.get_mac' had an internal change to deal with some configurations Suggestion !.
    • 'netget.ras_enum' didn't work for more than 128 ras entries Suggestion !.
    • 'get_magic_ini' returns magic.ini path.
    • Treeview didn't expand in 'tv;' mode in previous version Suggestion !.
    • 'get.save_tree_view' save treeview state (open/close and visible/invisible) into a file. You can also indicate in the treeview.txt file to open only some choosen nodes : add + for open at the beginning of the line.
    • 'get.kbput', that duplicates the Magic kbput function but adds keys (Alt+Letter for instace) and work for other application as well, didn't work for some characters. The problem looks fixed now.
    • 'get.rm_blanks' didn't remove the last line of a file Suggestion !.
    • Improoved .hlp help : if a GET.DLL function has an equivalent natively in Magic, it's signaled and eventual differences are explained, as well as Magic version that supports this equivalent.
    • 'get.screen_resolution' now tests parameters and choose the best frequency available for the monitor, as well as the best color available if color is not set.

    Previous GET.DLL versions...

    [ Magic Software Enterprises Resources - Magic DLL for Magic RAD ]

    [^] Download

    [Print Magic Cross Reference !]
    • Download Then decompress it to a temporary folder (c:\temp\ for instance). Then launch the get.exe installation program, and (this is important) choose as destination folder your Magic development folder (the folder where is mggenw.exe). Import the demo Magic application (gtA) from the shortcut created in the startup folder, it contains Magic samples of DLLs from this GET.DLL free package.
    • If it's the first time you download GET.DLL, also download
    • contains the getres.exe installation program. This is a collection of .ico (in 16x16 format, useful for bitmap buttons), .bmp (20x20 for the toolbar), and .avi or .ani animations. You should also install it in your Magic folder.
    • You can also download, with only the DLLs, but compiled with Borland C++. The C runtime library is statically linked, the memory requirement should be lower if crtdll.dll is not already loaded.
    • NViewLib can be used to add jpeg and pcx support to GET.DLL functions that use bitmap.
    • Blat.dll is used to add smtp email to mailget.dll.
    • Older versions are available for GETDLL Yahoo Groups subscribers at GETDLL YahooGroups.

    [ Magic Software Enterprises Resources - Magic DLL for Magic RAD ]

    [^] License

    GET.DLL, NETGET.DLL, PHONEGET.DLL, MAILGET.DLL, MFGET.DLL and NTGET.DLL are freeware. Like anything that is free, you get no warrantee of any kind.


    However, I want GET.DLL to be of hight quality, and I reply to suggestions ASAP (ie make or explain why I won't do it). If you use one of my Magic DLLs, please send me a mail, with indication about functions you are using, and link here.

    It's a personal work, my employer or Magic Software Enterprises aren't concerned by this utility. If you are looking in France for magicians, have a look at A2F services.

    [ Magic Software Enterprises Resources - Magic DLL for Magic RAD ] Editors
    Site Editors WebRing Next
    Random Site
      Magic Web Ring
    [ Previous | Next | Random Site | List Sites ]