"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
(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
http://www.magicsoftware.com
or http://www.magic-sw.com
)
This site is at
http://www.mggen.com/
(Add this page to your Favorites)
and currently hosted at
http://www.geocities.com/SiliconValley/Bit/1809/.
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 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.
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
.
|
|
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)
.
-
'get.title_clock' accepts as parameter 'dt:[date format]timbre format' so you can
put the day before the time
.
-
'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
- Windows API function. Usually stop here.
- TMP environment variable.
- TEMP environment variable.
- TEMP environment variable.
- Local Application Data\..\Temp\.
- 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)
.
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
.
-
'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)
.
-
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.
.
-
'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)
.
-
'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)
.
-
'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
.
-
'get.set_default_printer' uses the new (well, Windows 2000) SetDefaultPrinter
API function when available
.
-
'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
.
-
'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
.
-
'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
.
-
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.
.
-
'get.shortcut_create' can now set the "minimize"
option
.
-
'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.
.
-
'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.
2.4.0.3 (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.
.
-
'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.
.
-
'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.
.
-
'ba;' has a smaller border.
.
-
'get.file_compare' compares 2 files.
.
-
'get.process_id' returns Magic process identifier.
.
-
'netget.get_mac' had an internal change to deal with some configurations
.
-
'netget.ras_enum' didn't work for more than 128 ras entries
.
-
'get_magic_ini' returns magic.ini path.
-
Treeview didn't expand in 'tv;' mode in previous version
.
-
'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
.
-
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.
Download
-
Download getdll.zip.
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 getres.zip.
-
getres.zip
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
bccget.zip,
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.
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.
THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
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.
|