The Utility function

In our previous Send_Message posting we mentioned that we had deprecated another well-known function, and I’m sure you can guess which one from the title of this post – Yep, we deprecated the Utility function!

One of the things we’ve tried to do in this release is to tidy up and standardize the interface between your Basic+ programs and the Presentation Server, providing a standard object-based model based on properties, methods and events.  The Utility function has always been been an exception to this however, essentially providing a shorthand way of executing what should be SYSTEM object methods, thereby breaking the paradigm.

In light of this the Utility function has been deprecated and it’s functionally exposed as properties and methods of the SYSTEM and FILESYSTEM objects instead.  Utility itself still works, but it is now a shell that maps to the two aforementioned objects (more of which we’ll cover later).

In case you’re interested here’s how the Utility services map to the SYSTEM and FILESYSTEM objects:

Utility Service Object Type
BEEP SYSTEM Method
COPYFILE FILESYSTEM Method
CREATE SYSTEM Method
CURSOR SYSTEM Property [S]
CHOOSECOLOR SYSTEM Method
CHOOSEFONT SYSTEM Method
CHOOSEFILE SYSTEM + FILESYSTEM Method
CHOOSEDIR SYSTEM + FILESYSTEM Method
DESTROY           SYSTEM Method
DIALOG_BOX        SYSTEM Method
FLUSH SYSTEM Method
GET_EVENT SYSTEM Method
GETLOGICALDRIVES FILESYSTEM Property [G] (DRIVELIST)
HANDLE_BY_CURSOR  SYSTEM Method
HOOKCTRL          SYSTEM Method
IUNKNOWN_RELEASE  SYSTEM Method
LOAD_PICTURE      SYSTEM Method
MAKEDIR           FILESYSTEM Method
OBJECTID          SYSTEM Method
OPENAPP           SYSTEM Method
OBJECT_BY_CURSOR  SYSTEM Method
OBJECTLIST SYSTEM Method
PRINTSETUP SYSTEM Method
POST_WINMSG       SYSTEM Method
PICTURE_PROPS     SYSTEM Method
REMOVEDIR FILESYSTEM Method
RENAMEDIR FILESYSTEM Method
RENAMEFILE FILESYSTEM Method
RUN SYSTEM Method
RUNHELP           SYSTEM Method
RUNWIN SYSTEM Method
SHELLEXECUTE SYSTEM Method
SEND_WINMSG SYSTEM Method
TEXTRECT SYSTEM Method
UNHOOKCTRL SYSTEM Method
WINCOUNT SYSTEM Property [G]
WINDOW_BY_POS     SYSTEM Method

[EDIT: 19 Nov 15, Updated CHOOSEDIR and CHOOSEFILE methods to include FILESYSTEM]

(Disclaimer: This article is based on preliminary information and may be subject to change in the final release version of OpenInsight 10).

Send_Message and Exec_Method

OK, so we deprecated the Send_Message function for OI 10…

… but before you worry about your apps being broken don’t despair because it still works as it ever has.  It has actually been replaced by a new function named Exec_Method which exposes the same interface as Send_Message, with the added bonus that it can support more than four parameters, so it’s basically a straight drop-in replacement when you need to use it.

Why did we do this?  Well, there’s a couple of reasons really:

  • When talking about object-based systems the usual jargon includes references to properties, methods and events. However, with OI we’ve always used the term “messages” when referring to an object’s methods because of the Send_Message function.  We thought it was about time to use more standard terminology, like we do with the Basic+ OleExecMethod function for example.
  • Send_Message is very close to the name of the core Windows API SendMessage function and sometimes it’s just too confusing (and annoying) trying to explain which one you actually mean when you’re discussing how to manipulate an object.

Actually Send_Message isn’t the only casualty, we’ve deprecated another well-known function too, but we’ll leave the details of that one for another post…

[Edit: 24 Apr 13 – Call_Method renamed to Exec_Method]

Welcome…

… to the “Building OpenInsight 10” blog. As work progresses on the next version of OpenInsight this is where you’ll find the latest news and information on some of the new features and changes to the product taking place during the development process.

Right now work is well underway on the new Presentation Server (RevPS) so we’ll be taking a look at that in the coming months. Just to whet your appetite here’s a few things that we’re working on for version 10:

  • 64-bit version
  • High DPI aware
  • Full Windows Common Control support
  • Improved Edit Table
  • Some new controls (e.g. Panel, Property Grid)
  • Improved OLE support
  • Non visual object support (e.g. HTTP clients and servers)
  • Extensible architecture

Of course there’s more, but if we told you everything here there’d be nothing to cover at next year’s conference in Nashville!

Anyway, we’ll try and make regular postings but there’s still a lot of work to do before release, so if you don’t see a post for a week or two it’s not because we’ve given up – it’s because we’re really really really busy.