Desktop Manager Q&As

Technote TB 520October 1990

Revised by: Developer Support Center September 1993
Written by: Developer Support Center October 1990

This Technical Note contains a collection of archived Q&As relating to a specific topic--questions sent the Developer Support Center (DSC) along with answers from the DSC engineers. Current Q&A's can be found on the Macintosh Technical Q&A's web site.

Determining whether Desktop Manager calls are supported

Date Written: 3/17/93

Last reviewed: 6/24/93

Is there a Gestalt selector for determining specifically whether desktop database calls such as PBDTGetAPPL are present?


To determine whether the Desktop Manager calls are supported, use the following Pascal code, or modify it to C. If the PBGetVolParms call isn't supported, the Desktop Manager isn't there either, and the function returns a false condition.

It's important to note the warnings described in Inside Macintosh Volume VI, regarding the use of Desktop Manager calls. The Desktop Manager call descriptions are provided for informational use only. Applications that call PBDTAddAPPL to register new application creator types face compatibility risks with future releases of the Finder.

* The DoesVolSupportDBMgr function assumes that the target volume does not
*   support the Desktop Manager.  If an error occurs, the function returns
*  false.
*  Input:  tgtVRefNum - VRefNum of the target volume to check
*  Output: function returns true if the target volume supports the
*          Desktop Manager, false otherwise.
FUNCTION DoesVolSupportDBMgr(tgtVRefNum : INTEGER) : Boolean;
  myHPB:    HParamBlockRec;
  infoBuffer:  GetVolParmsInfoBuffer;

  DoesVolSupportDBMgr := FALSE;    { Assume that there is no desktop mgr support }
    ioNamePtr := NIL;
    ioVRefNum := tgtVRefNum;
    ioBuffer := @infoBuffer;
    ioReqCount := SizeOf(infoBuffer);
  IF PBHGetVolParms(@myHPB, FALSE) = noErr THEN
                  { a paramerr could occur here, which would }
                  { happen if the call is not supported }
                  { if so, return the default response - FALSE }
    DoesVolSupportDBMgr :=  BTST(infoBuffer.vMAttrib, bHasDesktopMgr);

Macintosh Desktop Manager vs desktop file

Date Written: 12/11/92

Last reviewed: 3/1/93

What are the advantages of the Desktop Manager's desktop database over the Desktop file? Inside Macintosh simply states that the desktop database can hold more icons than the Desktop file.


The advantages of the Desktop Manager over the Desktop file are:

* There's a documented interface for the Desktop Manager functions that developers can use.

* The Desktop Manager can be used on shared volumes. (The Desktop file, since it's simply a resource file, can allow write access to only one user or process; it can't be shared. Under MultiFinder, that process is the Finder.)

* The Desktop Manager functions can be implemented by an external file system in the most efficient way possible for that particular file system.

* The Desktop Manager doesn't have the file size limitations imposed by the Resource Manager (2727 resources and approximately 16 MB of resource data).

Removing icon data from Macintosh Desktop database or file

Date Written: 12/11/92

Last reviewed: 3/1/93

In what circumstances does the Finder remove icons from the Desktop file? The Desktop file my external file system creates for the Finder never seems to shrink, even when applications are removed from my remote volume.


With both the Desktop file and the Desktop Manager, icon data isn't removed from the database unless the Desktop database or file is rebuilt from scratch. That's because the Finder (and file system for that matter) has no way of being notified when the last file of a given creator and type is removed from a volume. If the Finder removes an application (a file with type APPL), then the Finder attempts to remove the application mapping information for that copy of the application from the Desktop database or file.

System 6 versus System 7 Desktop Manager

Date Written: 8/30/91

Last reviewed: 8/1/92

If the Desktop Manager (the version that comes with AppleShare) is installed under System 6.0.x, is it backward-compatible that of System 7.0?


The Desktop Manager in System 7 is completely backward-compatible with that of System 6.0.x. The System 7 version has been highly optimized, and is more robust than the original.

Determining if Macintosh Desktop Manager is present

Date Written: 3/7/91

Last reviewed: 8/1/92

How does one determine if the Macintosh Desktop Manager is available? I know under System 7.0 it's always available, but how about under 6.0?


The best method for determining whether the Desktop Manager is available or not is to use PBGetVolParms on your boot volume and check bit 12 of the vMAttrib field. See page 25-37 of Inside Macintosh Volume VI for additional information on PBGetVolParams.

Previous Technote | Contents | Next Technote