コード例 #1
0
ファイル: setfcomment.c プロジェクト: Airr/osxutils
///////////////////////////////////////////////////////////////////
// We set the MacOS 9 Finder comment using the File Manager API's
// Desktop Database functions.
///////////////////////////////////////////////////////////////////
static OSErr OS9_SetComment (FSSpec *fileSpec, char *comment, bool *unsupported)
{
#if !__LP64__    
    OSErr	err = noErr;
    DTPBRec dt;
        
    dt.ioVRefNum = (*fileSpec).vRefNum;
        
    err = PBDTGetPath(&dt);
    if (err != noErr) {
        *unsupported = true;
        return err;
    }
    
    //fill in the relevant fields (using parameters)
    dt.ioNamePtr = (*fileSpec).name;
    dt.ioDirID = (*fileSpec).parID;
    dt.ioDTBuffer = comment;
    dt.ioDTReqCount = strlen(comment);
    
    if (PBDTSetCommentSync (&dt) != noErr)
            return (err);
    
    err = PBDTSetCommentSync(&dt);
    if (err != noErr)
        return err; 
        
    err = PBDTFlushSync (&dt);
#endif        
    return (noErr);
}
コード例 #2
0
ファイル: MoreDesktopMgr.c プロジェクト: gitrider/wxsj2
pascal	OSErr	DTSetComment(short vRefNum,
							 long dirID,
							 ConstStr255Param name,
							 ConstStr255Param comment)
{
	DTPBRec pb;
	OSErr error;
	short dtRefNum;
	Boolean newDTDatabase;

	error = DTOpen(name, vRefNum, &dtRefNum, &newDTDatabase);
	if ( error == noErr )
	{
		pb.ioDTRefNum = dtRefNum;
		pb.ioNamePtr = (StringPtr)name;
		pb.ioDirID = dirID;
		pb.ioDTBuffer = (Ptr)&comment[1];
		/* Truncate the comment to 200 characters just in case */
		/* some file system doesn't range check */
		if ( comment[0] <= 200 )
		{
			pb.ioDTReqCount = comment[0];
		}
		else
		{
			pb.ioDTReqCount = 200;
		}
		error = PBDTSetCommentSync(&pb);
	}
	return (error);
}
コード例 #3
0
boolean setfilecomment (FSSpec *pfs, bigstring bscomment) {
	
	DTPBRec dt;
	
	clearbytes (&dt, longsizeof (dt));
	
	if (!hasdesktopmanager ((*pfs).vRefNum))
		return (false);
	
	dt.ioVRefNum = (*pfs).vRefNum;
	
	if (PBDTGetPath (&dt) != noErr)
		return (false);
	
	dt.ioNamePtr = (*pfs).name;
	
	dt.ioDirID = (*pfs).parID;
	
	dt.ioDTBuffer = (Ptr) bscomment + 1;
	
	dt.ioDTReqCount = stringlength (bscomment);
	
	if (PBDTSetCommentSync (&dt) != noErr)
		return (false);
	
	PBDTFlushSync (&dt);
	
	return (true);
	} /*setfilecomment*/