LIPA@POLYA.STANFORD.EDU (William J. Lipa) (04/04/88)
What is the best way to find out the wdRefNum or directoryId of the current application's directory under HFS? The default volume seems to be the root directory of the application's disk, not the application's own directory. Thanks, Bill Lipa alternates: lipa%polya%forsythe.stanford.edu lipa%polya%forsythe.bitnet -------
jv0l+@andrew.cmu.edu (Justin Chris Vallon) (04/06/88)
To get information about the default volume/wdRefNum/dirId, you should use PBHGetVol. Depending upon what you want, look at different fields: ioVRefNum This field returns the volRefNum of the default volume. According to IM IV-132: "IOVRefNum will return a working directory reference number (instead of the volume reference number) if, in the last call to PBSetVol or PBHSetVol, a wd ref num was passed in this field." This means that if the last call to PBHSetVol used a volRefNum/dirId pair, you will get the volRefNum; if it created a wd and passed it, then the wd will be returned. ioWDVRefNum This is always the volume reference number (never wd ref num) of the default volume ioWDDirID This is the dirId of the default volume (2 if root) As far as I can remember, the Finder sets up everything so that a PBGetVol/ PBHGetVol call will return the wdVolRefNum of the application in ioVRefNum. Above, I used the "low-level" calls, but the "high-level" call GetVol(name, &vrn) should also work. -Justin justin.vallon@andrew.cmu.edu