Page 1 of 1

Lazarus – MacOS – DiskArbitration with callbacks on disk updates in Pascal

Lazarus – MacOS – DiskArbitration with callbacks on disk updates in Pascal

Welcome to the Tweaking4All community forums!
When participating, please keep the Forum Rules in mind!

Topics for particular software or systems: Start your topic link with the name of the application or system.
Examples: "MacOS X - Your question", "MS Word - Your Tip or Trick".

Please note that switching to another language when reading a post will not work!
Posts will not have a translated counterpart.




RSS Feed

Home Forums Software Development Delphi, Lazarus, Free Pascal Lazarus – MacOS – DiskArbitration with callbacks on disk updates in Pascal

This topic contains 0 replies, has 1 voice, and was last updated by  hans 3 months, 1 week ago.

Viewing 1 post (of 1 total)
  • Author
    Posts
  • 11543

    hans
    Keymaster

    Since this took me a lot of time and work to figure out (thanks to the guys in the Lazarus forum as well, without their help I would have not gotten this to work), I figured; post it in the forum, maybe others are interested as well.

    What this little demo project does is register functions of my application with MacOS, so that when a disk appears, disappears, or changes, my application gets notified by the OS.
    For this I have used what Apple calls “DiskArbitration”. I’ve included the required units for that (diskarbitration and dissenter).

    The demo also shows how to read a CFArrayRef and how to convert a CFStringRef to a Pascal string;

    function CFStringToPascalString(theCFStringRef: CFTypeRef):string;
    var FBuf : array[0..512] of Char;
    begin
      if theCFStringRef<>nil then
        begin
          FillChar(FBuf, SizeOf(FBuf), 0);
          CFStringGetPascalString(theCFStringRef,@FBuf[0],SizeOf(FBuf),CFStringGetSystemEncoding);
          Result := trim(StrPas(PChar(@FBuf[1]))); // skip 1st char, it's a strange 1st char causing crashes
        end
      else
        Result:='';
    end;           

    I hope it is to use for one or the other Lazarus Pascal user that works under MacOS.

    Attachments:
Viewing 1 post (of 1 total)



You must be logged in to reply to this topic.