MBS REALbasic Plugins, version 10.4pr10

New in the ninth prerelease of the 10.4 plugins:
  • Fixed crash on Linux and Windows related to picture access.
  • Fixed crash related to new picture code in NSImageMBS constructor.
  • FileListMBS sort methods no longer crash if you have no files.
Download: macsw.de/plugin/Prerelease

About new Call functions

In recent plugin prereleases we added functions like this:

CallMethodMBS(target as object, name as string, value... as variant) as boolean
CallMethodOnMainThreadMBS(target as object, name as string, value... as variant) as boolean
CallMethodOnThreadMBS(BackgroundThread as BackgroundThreadMBS, target as object, name as string, value... as variant) as boolean

They are very similar. Currently they can take up to three variants as parameters, but that number can be increased if you need. The number of parameters you pass must of course match the declaration of the method you want to call.

Now you may ask: What do this methods do and why should I use them?

Well, first they call a method for you. Something that you can do yourself. Let's say you have a method like this:

sub test(someParameter as variant)

Now you can call in your code this method like this: window1.test("Hello World"). But you can also use our CallMethodMBS function can call it this way: CallMethodMBS(window1, "test", "Hello World"). As you see you need to pass an object for the function to be searched on. As you pass the function name as a string, you can make it dynamically. From time to time a feature like this is requested on the mailing lists and forums, so here you have it. CallMethodMBS returns a boolean whether the call worked. It fails of course if the target object is nil or has no such method.

Next you can use CallMethodOnMainThreadMBS to call this method. While this function returns directly to you, the actual function call will happen later on the main thread. Normally within a few milliseconds, but that depends on how busy your application is. You need a function like this if you do some work in a background thread and you need to perform code on the main thread. There is code doing GUI functions which must be called on the main thread, because it will crash otherwise. Especially with the new Cocoa target we will see this need. That it works most cases on Carbon/Win32 code has its reason in the fact that the main thread is mostly idle at that time.

The third set of functions called CallMethodOnThreadMBS will create a new thread for you and call your method there. Is makes multi threading in REAL Studio much easier than before. So instead of calling window1.test(somedata), you can now call CallMethodOnThreadMBS(new BackgroundThreadMBS, window1, "Test", somedata). This will spin off a new thread and do the execution there, so your main thread has time for doing GUI actions. Your other code will run after this line just fine.

We need you to pass a new BackgroundThreadMBS object as the plugin can't create one on itself. Within some limitations you could build functions like this yourself, but our plugin gives you a convenience way to improve your times. Email us if you have more ideas for functions like this.

MBS REALbasic Plugins, version 10.4pr9

New in the ninth prerelease of the 10.4 plugins:
  • Updated DynaPDF to version
  • ScaleMBS works for me, but crashes for one customer. Help on reproducing is very welcome.
  • Replaced REALBuildPictureFromGWorld from the plugin SDK with my own replacement for Cocoa so all plugin functions using it, will now work on Cocoa. for example: StringtoPictureByOSTypeMBS and StringtoPictureMBS.
Download: macsw.de/plugin/Prerelease

REAL Studio 2010r3

Today REAL Software released a new version of REAL Studio. We worked hard on getting plugins ready, but the Cocoa target and the console graphics gave us a lot of work. Most is ready, we hope, but not everything.
We already have a few bug reports REAL Software said they will fix in a 3.1 update. For example feedback ID 12772 where a project with the line "Backdrop = LogoMBS(500)" in a window.open event in Cocoa will not show the picture. Although the picture is there and you can see it in the debugger or if you display it in a canvas.backdrop.
Please email us about any problem you find related to our plugins so we can fix it.

MBS REALbasic Plugins, version 10.4pr8

New in the eighth prerelease of the 10.4 plugins:
  • Removed Base64MBS.close.
  • Updated DynaPDF to version
  • Added WindowsSystemTrayMBS.InstallEvent.
  • Much more classes/modules have been modified to work on console applications.
  • Added CallMethodOnThreadMBS, CallMethodOnMainThreadMBS and CallMethodMBS functions.
  • Added BackgroundThreadMBS class.
  • Changed MutexMBS.Tag to Variant.
  • Fixed DRFileMBS.symLinkPointingTo function.
  • Added ThreadMBS.StackSize property.
  • In SQLDatabaseMBS the database error is now better cleared after an operation was successful.
  • Changed picture handling code to work better with Cocoa and Console targets in REAL Studio 2010r3.
  • Updated PictureEditor24MBS, PictureEditor32MBS, PictureReaderMBS and PictureWriterMBS classes.
  • Added PictureEditor32ConsoleMBS, PictureReaderConsoleMBS and PictureWriterConsoleMBS classes.
  • Added new NotificationObserverMBS class.
  • Added new NotificationReceiverMBS interface.
  • Added new NotificationMBS class.
  • Renamed NotificationMBS to MacNotificationMBS.
Download: macsw.de/plugin/Prerelease

Progress on REAL Studio 2010r3 compatibility

A few changes are coming to plugin developers with REAL Studio 2010r3. We make progress on this and also REAL Software fixed a few of the bugs we found in the latest final candidates. So we are confident, we can have our 10.4 plugins working well with the new REAL Studio release.
Of course our version supported table will soon be updated to show plugin version 10.4 as minimum for REAL Studio 2010r3. This does not mean that older plugins will stop working if you upgrade REAL Studio, but we recommend keeping the plugins up to date.

Working on Cocoa

Currently we are busy like crazy. REAL Studio 2010r3 is close to release and will bring a beta of the new Cocoa target. I do expect that we'll get a ton of support requests because something is not working. And I do hope that we can simply point most people to download the latest plugin beta version.
So please be patient. Especially if REAL Studio 2010r3 may have some bug or non implemented functionality which we need for our plugins and you'll have to wait for 2010r4.

Some things work already, but some not, so we hope the final release will fix the problems.

Today: Atlanta REALbasic Users Group Meeting

The Atlanta REALbasic Users Group will be meeting tonight, Monday, July 19th. For this meeting we'll be discussing popular plugins, how to best implement them, strengths and weaknesses.

In addition, we'll be talking all of the latest news including news that pertains to us in Atlanta!

When: 6pm to 9pm
Where: Ippolitos Restaurant, Sandy Springs


If you live in the Atlanta area, we'd love to meet you and talk all things REAL Studio!

Just arrived

We are happy about the birth of our son Michael.

MBS REALbasic Plugins, version 10.4pr7

New in the seventh prerelease of the 10.4 plugins:
  • Added NSTextFieldMBS.bezelStyle property and constants.
  • Added SetAnnotOpenState, SetAnnotIcon, SetAnnotHighlightMode, SetAnnotFlagsEx, SetAnnotColor, SetAnnotBorderWidth, SetAnnotBorderStyle, RenameSpotColor, AddRenderingIntentEx to DynaPDFMBS.
  • Updated DynaPDF to version
  • Added a lot of new methods for DiscRecording plugin affecting the following classes: DRTrackMBS, DRSetupPanelMBS, DRFSObjectMBS, DRFileMBS, DREraseProgressPanelMBS, DREraseMBS, DRDeviceMBS, DRBurnSetupPanelMBS, DRBurnProgressPanelMBS and DRBurnMBS.
  • Renamed initWithLinkType to linkWithLinkType in DRFileMBS class.
  • Added more write methods to DynaPDF so you can pass arrays of values.
  • Unregistered plugin dialogs now show version number and process ID.
  • Fixed FontActivateMBS and FontDeactivateMBS on Windows to work again. Also console safe now.
  • Made changes to the common picture creating code for better support of future REAL Studio versions.
  • Most EyeOneMBS methods are shared methods now.
Download: macsw.de/plugin/Prerelease

License upgrades?

If you have a couple of license for our plugin parts like Util, Compression, Win, etc. and you like to get a complete license, you can email us and we give you your discounted upgrade price.

REAL Studio to Include Cocoa Framework Beta in Upcoming Release

see http://www.realsoftwareblog.com/2010/07/real-studio-to-include-cocoa-framework.html

That's a cool move as this gives REAL Software a lot of real world bug reports for the new Cocoa target. And plugin users can test our plugins with Cocoa, too.

MBS REALbasic Plugins, version 10.4pr6

New in the sixth prerelease of the 10.4 plugins:
  • Added ProcessMBS.CurrentProcessID.
  • Added GifExtensionMBS.FirstData and GIFMBS.FirstBlock for easier debugging.
  • Added GifPictureMBS.CopyData, GifBlockMBS.Clone, GifDataMBS.Clone, GifExtensionMBS.Clone, GIFMBS.Clone, GifPaletteMBS.Clone, GifPictureMBS.Clone, GifPictureMBS.HasPalette and GifScreenMBS.Clone.
  • Added TraceFile and TraceHandle to the DynaPDFMBS class.
  • Added DynapdfMBS.PageCoords property.
  • Added QTPrerollMBS class.
Download: macsw.de/plugin/Prerelease

Emails caught by spam filters

Seems like today is a day where my email server is on the blacklist of some other email servers. In that case I send again using another email server.

So if you are waiting for an answer from me, it may be that your email or my email is in the filters and was rejected. In that case you can contact us with our feedback forms.

REAL Studio linker problem

Create a new REAL Studio project and add this test method to the window:

Sub Test(x as shell)
dim c as BevelButton
c.Enabled = true
End Sub

Now build your application.
You will see that the shell plugin code is added to the binary. But the AppearancePack is not included.

So REAL Studio detects, that this method is not needed and marks Bevelbutton for not to be included.
But it forgets to mark shell class here to be not included.

So the application size is bigger than needed.

Please add yourself to Feedback 12735

CURL tip of the day

Normally we all put username and password in the URL for a download. It's simple and convenient. Like this:
But what to do if the username or the password contains characters like "@" or ":"?

this URL will fail to parse as CURL expects the server name after the first @.

The solution is to use the OptionUsername and OptionPassword properties for the name and password:
c.OptionUsername = "christian@mbs"
c.OptionPassword = "123456"
c.OptionURL = "ftp://ftp.someserver.com/test/file.txt"
I hope this helps you.

Quarantine Properties

Today a user asked: Where can I get this URL from the file I downloaded?

The answer is to use the MacQuarantinePropertiesMBS class. There you have properties to get he origin URL, normally the website. Also the data URL where the file is located, the time stamp and which app did make the download. Also there is a property to tell you what type of download it is like a web download, an email, an calendar event or an instant message attachment.

MBS REALbasic Plugins, version 10.4pr5

New in the fifth prerelease of the 10.4 plugins:
  • Updated DynaPDF to version
  • Added MacUSBDeviceMBS class.
  • Changed linking of ChartDirector plugin to work better in the future with Windows 64 bit.
  • Added more folder functions: (Create)AppleshareAutomountServerAliasesFolderMBS, (Create)AudioDigidesignFolderMBS, (Create)AudioPresetsFolderMBS, (Create)AudioVSTFolderMBS, (Create)AutomatorWorkflowsFolderMBS, (Create)AutosaveInformationFolderMBS, (Create)BootTimeStartupItemsFolderMBS, (Create)ClassicPreferencesFolderMBS, (Create)ColorPickersFolderMBS, (Create)CompositionsFolderMBS, (Create)DownloadsFolderMBS, (Create)FindByContentIndexesFolderMBS, (Create)FontCollectionsFolderMBS, (Create)iMovieFolderMBS, (Create)iMoviePlugInsFolderMBS, (Create)iMovieSoundEffectsFolderMBS, (Create)IndexFilesFolderMBS, (Create)InputManagersFolderMBS, (Create)InputMethodsFolderMBS, (Create)KeyboardLayoutsFolderMBS, (Create)LibraryAssistantsFolderMBS, (Create)MagicTemporaryItemsFolderMBS, (Create)ManagedItemsFolderMBS, (Create)QuickLookFolderMBS, (Create)SpotlightImportersFolderMBS, (Create)SpotlightMetadataCacheFolderMBS, (Create)SpotlightSavedSearchesFolderMBS, (Create)TemporaryItemsInCacheDataFolderMBS and (Create)TemporaryItemsInUserDomainFolderMBS.
Download: macsw.de/plugin/Prerelease

World Cup Raffle! REAL Studio prizes!

see REAL Software Forums


A quick note to those who looked for this: Next plugins will have a MacUSBDeviceMBS class to enumerate all USB devices on Mac. :-)

For Windows, I suggest you check the WindowsDeviceMBS class which enumerates all devices on a Windows machine. Getting the vendor and product IDs is a little bit tricky there as you grab it from the device path, but certainly doable.

Some interesting feedback reports for you?

Please check them, add a comment or put them on your favorites list. Every vote counts :-)

Report 12692: CDbl/Val fail when encountering BOM character in UTF8 files
Report 7742: add a runtimeexception.ClassName property
Report 12703: OutOfBoundsException exceptions should have details
Report 6284: Add function to test for identifier existants
Report 12704: Feedback should have recent changes list on the library part of the bar on the left.

A new record in the number of features.

With the 10.4pr4 release of the plugins, we crossed the 30,000 mark on the feature count. So now we have 30,267 documented features in 1378 classes, 9 controls, 23 modules and 908 global functions. Also our plugin collection features 1190 example projects as well as 4215 examples inside the reference.

MBS REALbasic Plugins, version 10.4pr4

New in the forth prerelease of the 10.4 plugins:
  • Improved resolution handling in DisplayMBS class and ResolutionMBS class on Windows.
  • The PDFAnnotationMBS constructor is now private. This is to make sure you don't create instances from this class. You should only create instances of the subclasses.
  • Fixed PDFActionGoToMBS constructor.
  • Fixed bug in PDFDestination constructor.
  • Added more methods and constants to QTMetaDataMBS class.
  • Added WindowsDiscInfoMBS class.
  • Added WindowsDeviceMBS class.
  • Updated DynaPDF to version
  • Added ComplexSingleMBS and ComplexDoubleMBS classes for complex numbers.
Download: macsw.de/plugin/Prerelease
Update: The WindowsDeviceMBS class is missing in this upload, so I uploaded a new Win Plugin part.

REALbasic Developer Magazine 8.5 published

Go and get your copy. Check the new layout, which is better for reading on the iPad.

Don't have a subscription?
Well, we raffle 3 six months subscriptions off today.
If you want one, send us an email, a text message, post a comment or use the feedback form to inform us with your email address. We will select three people randomly on tomorrow morning.

Update: A little bit late, but we got our 3 winners. Congratulations and thanks to everyone who emailed or commented.

Hot summer

What to do on a hot summer day? We have here 36°C (97 F) here today.

My suggestion is to take your wife or girl friend and drive to the next air conditioned shopping mall. Buy the next birthday presents you need, maybe a little gift for a friend, enjoy some gelato and just look around :-)
We drove today to the Löhr Center in Koblenz (140 shops).

And now enjoy the soccer game: Argentina against Germany

Cameraman 2.1.4

Today I updated our film scripting application Cameraman. The new version 2.1.4 fixed a few bugs.

My website with downloads:

And the official website is in German currently, but the application is German and English:

Map of blog readers

Over a month ago I had the idea to try clustrmaps.com and make the visitors of the blog visible. So here is the current map:

Please not that this does only count people browsing to the blog with a browser and not all the RSS readers or search machines.

in the Austin, Texas country

I have been to two REALworld events in Austin Texas. Beside the conference we spend a good time there visiting a lot of nice places:

The OMNI Hotel we stayed had a big inner courtyard where dinners for big groups like ours were served.

Looking outside there is the Texas capitol where we walked in. I was amazed on how much we were allowed to see. Walking on several levels we looked in both the Texas Senate Chamber and the Texas House of Representatives Chamber.

This is the catholic bishop church just two blocks away from the hotel:

One evening we drove to a nearby rodeo, cowboy, car show event.

We also drove to George Town, north of Austin

There was a nice dripstone cave:

Driving to the west of austin through the country side we found a big nice lake:

South of Texas we visited an old historical city from the wild west:

And this is near Gruene the oldest church of Texas. The grave yard nearby has a lot of graves with German names.

And finally on the way back to Austin we came to a big shopping outlet:

See you on the next REALbasic event!

MBS REALbasic Plugins, version 10.4pr3

New in the third prerelease of the 10.4 plugins:
  • Added PNGOptimizerMBS.Panic event.
  • Added GetPropertyCode and SetPropertyCode to QTMetaDataItemMBS class.
  • Added functions for Windows: WindowsGetProcessIntegrityLevelMBS, WindowsIsApplicationRunAsAdminMBS, WindowsIsProcessElevatedMBS and WindowsIsUserInAdminGroupMBS.
  • Removed a couple accessors for 32 bit and 64 bit integers from the memoryblock as you can do the same since 2006 with built-in REAL Studio methods.
  • Updated GraphicsMagick to version 1.3.12 on Mac and Linux.
  • Added GetPropertyCode and SetPropertyCode to QTMetaDataItemMBS class.
  • Updated lintiff to version 3.9.4.
  • Updated OptiPNG to version 0.6.4.
  • Updated libpng to version 1.4.3.
  • PDFDocumentMBS.outlineRoot is now setable.
  • Changed WinHIDMBS class. Now returns more devices even if you can't access them, but this way we see all devices.
  • Deprecated LoadAPI and LoadDLL in PHPMBS class.
  • Deprecated LoadFrameworkFile, LoadFramework and LoadDLL in EyeOneMBS class.
  • Deprecated LoadAPIframework, LoadAPIdll and LoadAPIlibrary in GhostScriptMBS class.
  • Added CDBaseChartMBS.LoadLibrary.
  • Added CURLMBS.LoadLibrary.
  • Added EyeOneMBS.LoadLibrary.
  • Added GhostScriptMBS.LoadLibrary.
  • Added Phidgets.LoadPhidgetLibraryMBS.
  • Added PHPMBS.LoadLibrary.
  • Changed the library loading code in several plugin parts to work with folderitems and strings for passing the path.
  • Updated HasNoTitleBarMBS, HasCloseBoxMBS, HasCollapseBoxMBS, IsResizableMBS and IsMetalWindowMBS on window class to work on Cocoa targets.
  • Added PatchedRuntimeObjectLocking, PatchedRuntimeStackChecking, PatchedRuntimeStringLocking, RestoreRuntimeStackChecking to ThreadMBS class.
  • Added new LookupHostbyNameMBS method which takes a AddressType parameter.
  • Added ParseIPv6, ParseIPv4 and FormatIP shared methods to DNSLookupMBS class.
  • Added constants AddressTypeIPv4 and AddressTypeIPv6 to DNSLookupMBS class.
  • ScreenshotMBS, ScreenshotDisplayMBS and ScreenshotRectMBS updated to support multiple displays on Windows.
  • Added CIFilterMBS.Constructor to take a handle.
  • Added CIFilterMBS.FilterWithHandle.
Those changes on LoadLibrary are to unify code. We now can load all libraries using folderitems or string pathes. I hope it works fine for you.
Download: macsw.de/plugin/Prerelease

Windows Admin functions

10.4pr3 later today will add a couple of Windows related functions:
WindowsIsApplicationRunAsAdminMBS as boolean
WindowsIsUserInAdminGroupMBS as boolean
WindowsIsProcessElevatedMBS as boolean
WindowsGetProcessIntegrityLevelMBS as integer
To see what which function returns on what Windows version, I made a couple of screenshots and composed the picture on the right.

Baby Countdown

It's July now and within the next two weeks we expect our first baby, a son. Everything is arranged and the pregnancy went very well. Mum, dad and baby are all healthy.

So if the baby comes, we'll close the company for a day or two. Emails, orders and phone calls will have to wait. Please excuse.

PS: If you want to send best wishes, how about sending them as a nice postcard? That way we could collect them and show them our son in a few years.


Jun 2024
May 2024
Apr 2024
Mar 2024
Feb 2024
Jan 2024
Dec 2023
Nov 2023
Oct 2023
Sep 2023
Aug 2023
Jul 2023
Jun 2023
May 2023
Apr 2023
Mar 2023
Feb 2023
Jan 2023
Dec 2022
Nov 2022
Oct 2022
Sep 2022
Aug 2022
Jul 2022
Jun 2022
May 2022
Apr 2022
Mar 2022
Feb 2022
Jan 2022
Dec 2021
Nov 2021
Oct 2021
Sep 2021
Aug 2021
Jul 2021
Jun 2021
May 2021
Apr 2021
Mar 2021
Feb 2021
Jan 2021
Dec 2020
Nov 2020
Oct 2020
Sep 2020
Aug 2020
Jul 2020
Jun 2020
May 2020
Apr 2020
Mar 2020
Feb 2020
Jan 2020
Dec 2019
Nov 2019
Oct 2019
Sep 2019
Aug 2019
Jul 2019
Jun 2019
May 2019
Apr 2019
Mar 2019
Feb 2019
Jan 2019
Dec 2018
Nov 2018
Oct 2018
Sep 2018
Aug 2018
Jul 2018
Jun 2018
May 2018
Apr 2018
Mar 2018
Feb 2018
Jan 2018
Dec 2017
Nov 2017
Oct 2017
Sep 2017
Aug 2017
Jul 2017
Jun 2017
May 2017
Apr 2017
Mar 2017
Feb 2017
Jan 2017
Dec 2016
Nov 2016
Oct 2016
Sep 2016
Aug 2016
Jul 2016
Jun 2016
May 2016
Apr 2016
Mar 2016
Feb 2016
Jan 2016
Dec 2015
Nov 2015
Oct 2015
Sep 2015
Aug 2015
Jul 2015
Jun 2015
May 2015
Apr 2015
Mar 2015
Feb 2015
Jan 2015
Dec 2014
Nov 2014
Oct 2014
Sep 2014
Aug 2014
Jul 2014
Jun 2014
May 2014
Apr 2014
Mar 2014
Feb 2014
Jan 2014
Dec 2013
Nov 2013
Oct 2013
Sep 2013
Aug 2013
Jul 2013
Jun 2013
May 2013
Apr 2013
Mar 2013
Feb 2013
Jan 2013
Dec 2012
Nov 2012
Oct 2012
Sep 2012
Aug 2012
Jul 2012
Jun 2012
May 2012
Apr 2012
Mar 2012
Feb 2012
Jan 2012
Dec 2011
Nov 2011
Oct 2011
Sep 2011
Aug 2011
Jul 2011
Jun 2011
May 2011
Apr 2011
Mar 2011
Feb 2011
Jan 2011
Dec 2010
Nov 2010
Oct 2010
Sep 2010
Aug 2010
Jul 2010
Jun 2010
May 2010
Apr 2010
Mar 2010
Feb 2010
Jan 2010
Dec 2009
Nov 2009
Oct 2009
Sep 2009
Aug 2009
Jul 2009
Apr 2009
Mar 2009
Feb 2009
Dec 2008
Nov 2008
Oct 2008
Aug 2008
May 2008
Apr 2008
Mar 2008
Feb 2008