Thanks - that explains a lot.
The 'Queues with Refnums' are the older style of queue VIs that are depreciated.
I had assumed that since "Identification by Refnums" [pointers] seemed more sophisticated than "Identification by Names" [strings], then the Refnum approach would be the newer, more sophisticated way of doing things.
They can only accept a string as an element, so anything you want to pass into the queue must first be cast to a string, then cast back to its original datatype.
Just last night, I was playing around with the Refnum approach, specifically
C:\Program Files\National Instruments\LabVIEW 7.0\vi.lib\Utility\queue.llb\Create Queue.vi
It turns out that this "Create Queue.vi" is just a wrapper for the new
"Obtain Queue" function, and within that wrapper, they submit an empty string to "Obtain Queue", so I just changed that to an empty version of the homebrew data type that I wanted to use, and saved the VI with a new name [essentially just "Create My Homebrew Datatype Queue.vi"]
But if "Identification by Names" [strings] is the wave of the future, then I guess I'll abandon all that Refnum stuff and get with the program.
PS: It is really strange, though, to access something as sophisticated as a queue [between threads in a virtual machine] by nothing more formal than a name [i.e. a string]. It also raises the possiblity of identifier-collision [since it's entirely possible that two programmers could both choose to name their queues something like "MyDataQueue"], but I guess there are some pretty obvious safeguards you could take to minimize the chances of that happening.