- FSSpec spec;
- memcpy( &spec , *theItem->dataHandle , sizeof(FSSpec) ) ;
- display = CheckFile( spec.name , theInfo->fileAndFolder.fileInfo.finderInfo.fdType , data ) ;
+ if (theItem->descriptorType == typeFSS )
+ {
+ FSSpec spec;
+ memcpy( &spec , *theItem->dataHandle , sizeof(FSSpec) ) ;
+ wxString file = wxMacMakeStringFromPascal( spec.name ) ;
+ display = CheckFile( file , theInfo->fileAndFolder.fileInfo.finderInfo.fdType , data ) ;
+ }
+ #if TARGET_CARBON
+ else if ( theItem->descriptorType == typeFSRef )
+ {
+ FSRef fsref ;
+ memcpy( &fsref , *theItem->dataHandle , sizeof(FSRef) ) ;
+ wxString file ;
+ const short maxpath = 1024 ;
+ FSRefMakePath( &fsref , (UInt8*) file.GetWriteBuf(maxpath+1),maxpath) ;
+ file.UngetWriteBuf() ;
+ display = CheckFile( file , theInfo->fileAndFolder.fileInfo.finderInfo.fdType , data ) ;
+ }
+#endif